#include #include "led.h" #include "board_config.h" Led led; void Led::init(void) { if (done_init) { return; } done_init = true; #ifdef PIN_STATUS_LED pinMode(PIN_STATUS_LED, OUTPUT); #endif #ifdef WS2812_LED_PIN pinMode(WS2812_LED_PIN, OUTPUT); ledStrip.begin(); #endif } void Led::update(void) { const uint32_t now_ms = millis(); #ifdef PIN_STATUS_LED switch (state) { case LedState::ARM_OK: { digitalWrite(PIN_STATUS_LED, STATUS_LED_OK); last_led_trig_ms = now_ms; break; } default: if (now_ms - last_led_trig_ms > 100) { digitalWrite(PIN_STATUS_LED, !digitalRead(PIN_STATUS_LED)); last_led_trig_ms = now_ms; } break; } #endif #ifdef WS2812_LED_PIN ledStrip.clear(); switch (state) { case LedState::ARM_OK: ledStrip.setPixelColor(0, ledStrip.Color(0, 255, 0)); break; default: ledStrip.setPixelColor(0, ledStrip.Color(255, 0, 0)); break; } if (now_ms - last_led_strip_ms >= 200) { last_led_strip_ms = now_ms; ledStrip.show(); } #endif }