Do not blink the LED when idle
Blinking regular (non-dimmable) LED can be annoying. It should be used to attract user's attention only.
This commit is contained in:
parent
a324477a8a
commit
3f1f2d383f
2 changed files with 23 additions and 0 deletions
|
|
@ -49,6 +49,15 @@ void led_blinking_task() {
|
|||
#ifdef PICO_DEFAULT_LED_PIN_INVERTED
|
||||
state = !state;
|
||||
#endif
|
||||
if (!led_mode) {
|
||||
// in this mode the LED shall be off, not blinking
|
||||
if (board_millis() - last_led_update_ms > 2) {
|
||||
led_driver_color(0, 0, 0);
|
||||
last_led_update_ms = board_millis();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
uint32_t led_brightness = (led_mode & LED_BTNESS_MASK) >> LED_BTNESS_SHIFT;
|
||||
uint32_t led_color = (led_mode & LED_COLOR_MASK) >> LED_COLOR_SHIFT;
|
||||
uint32_t led_off = (led_mode & LED_OFF_MASK) >> LED_OFF_SHIFT;
|
||||
|
|
|
|||
|
|
@ -50,6 +50,19 @@ enum {
|
|||
// steady on
|
||||
#define LED_ON_NO_BLINK ((1000 << LED_ON_SHIFT) | (0 << LED_OFF_SHIFT))
|
||||
|
||||
#if defined(PICO_DEFAULT_LED_PIN) && !defined(PICO_DEFAULT_WS2812_PIN) && !defined(PIMORONI_TINY2040) && !defined(PIMORONI_TINY2350)
|
||||
// boards with plain old monochrome LED
|
||||
enum {
|
||||
MODE_NOT_MOUNTED = (MAX_BTNESS << LED_BTNESS_SHIFT) | (LED_COLOR_WHITE << LED_COLOR_SHIFT) | (500 << LED_ON_SHIFT) | (500 << LED_OFF_SHIFT),
|
||||
MODE_MOUNTED = 0, // no distraction when idle
|
||||
MODE_SUSPENDED = 0, // no distraction when idle
|
||||
MODE_PROCESSING = (MAX_BTNESS << LED_BTNESS_SHIFT) | (LED_COLOR_WHITE << LED_COLOR_SHIFT) | (50 << LED_ON_SHIFT) | (50 << LED_OFF_SHIFT),
|
||||
MODE_BUTTON = (MAX_BTNESS << LED_BTNESS_SHIFT) | (LED_COLOR_WHITE << LED_COLOR_SHIFT) | (250 << LED_ON_SHIFT) | (250 << LED_OFF_SHIFT),
|
||||
MODE_ALWAYS_ON = UINT32_MAX,
|
||||
MODE_ALWAYS_OFF = 0
|
||||
};
|
||||
#else
|
||||
// boards with Neopixel or something similar
|
||||
enum {
|
||||
MODE_NOT_MOUNTED = (MAX_BTNESS << LED_BTNESS_SHIFT) | (LED_COLOR_RED << LED_COLOR_SHIFT) | (500 << LED_ON_SHIFT) | (500 << LED_OFF_SHIFT),
|
||||
MODE_MOUNTED = (MAX_BTNESS << LED_BTNESS_SHIFT) | (LED_COLOR_GREEN << LED_COLOR_SHIFT) | (500 << LED_ON_SHIFT) | (500 << LED_OFF_SHIFT),
|
||||
|
|
@ -60,6 +73,7 @@ enum {
|
|||
MODE_ALWAYS_ON = UINT32_MAX,
|
||||
MODE_ALWAYS_OFF = 0
|
||||
};
|
||||
#endif
|
||||
|
||||
extern void led_set_mode(uint32_t mode);
|
||||
extern uint32_t led_get_mode();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue