FastLED 3.9.15
Loading...
Searching...
No Matches
constants.h
Go to the documentation of this file.
1
3
4#pragma once
5
6#include "fl/stl/stdint.h"
7
8namespace fl {
9namespace isr {
10
11// Abstract priority levels (platform-independent, higher value = higher priority)
12// Platforms map these to their native priority schemes internally
13constexpr u8 ISR_PRIORITY_LOW = 1; // Lowest priority
14constexpr u8 ISR_PRIORITY_DEFAULT = 1; // Default priority (alias for LOW)
15constexpr u8 ISR_PRIORITY_MEDIUM = 2; // Medium priority
16constexpr u8 ISR_PRIORITY_HIGH = 3; // High priority (recommended max)
17constexpr u8 ISR_PRIORITY_CRITICAL = 4; // Critical (experimental, platform-dependent)
18constexpr u8 ISR_PRIORITY_MAX = 7; // Maximum (may require assembly, platform-dependent)
19
20// Common flags (applicable to most platforms)
21constexpr u32 ISR_FLAG_IRAM_SAFE = (1u << 0); // Place in IRAM (ESP32)
22constexpr u32 ISR_FLAG_EDGE_RISING = (1u << 1); // Edge-triggered, rising edge
23constexpr u32 ISR_FLAG_EDGE_FALLING = (1u << 2); // Edge-triggered, falling edge
24constexpr u32 ISR_FLAG_LEVEL_HIGH = (1u << 3); // Level-triggered, high level
25constexpr u32 ISR_FLAG_LEVEL_LOW = (1u << 4); // Level-triggered, low level
26constexpr u32 ISR_FLAG_ONE_SHOT = (1u << 5); // One-shot timer (vs auto-reload)
27constexpr u32 ISR_FLAG_MANUAL_TICK = (1u << 6); // Manual tick mode (simulation/testing)
28
29// ESP32-specific flags
30constexpr u32 ISR_FLAG_ESP_SHARED = (1ul << 16); // Shared interrupt (ESP32)
31constexpr u32 ISR_FLAG_ESP_LOWMED = (1ul << 17); // Low/medium priority shared (ESP32)
32
33// STM32-specific flags
34constexpr u32 ISR_FLAG_STM32_PREEMPT = (1ul << 18); // Use preemption priority (STM32)
35
36} // namespace isr
37} // namespace fl
constexpr u8 ISR_PRIORITY_HIGH
Definition constants.h:16
constexpr u32 ISR_FLAG_MANUAL_TICK
Definition constants.h:27
constexpr u32 ISR_FLAG_IRAM_SAFE
Definition constants.h:21
constexpr u8 ISR_PRIORITY_MAX
Definition constants.h:18
constexpr u32 ISR_FLAG_ESP_SHARED
Definition constants.h:30
constexpr u32 ISR_FLAG_ONE_SHOT
Definition constants.h:26
constexpr u32 ISR_FLAG_EDGE_RISING
Definition constants.h:22
constexpr u32 ISR_FLAG_ESP_LOWMED
Definition constants.h:31
constexpr u8 ISR_PRIORITY_CRITICAL
Definition constants.h:17
constexpr u32 ISR_FLAG_LEVEL_HIGH
Definition constants.h:24
constexpr u8 ISR_PRIORITY_LOW
Definition constants.h:13
constexpr u32 ISR_FLAG_STM32_PREEMPT
Definition constants.h:34
constexpr u8 ISR_PRIORITY_DEFAULT
Definition constants.h:14
constexpr u32 ISR_FLAG_EDGE_FALLING
Definition constants.h:23
constexpr u8 ISR_PRIORITY_MEDIUM
Definition constants.h:15
constexpr u32 ISR_FLAG_LEVEL_LOW
Definition constants.h:25
unsigned char u8
Definition stdint.h:131
Base definition for an LED controller.
Definition crgb.hpp:179