| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #include <Arduino.h>
- #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
- }
|