Topuino_Hardware/src/StatusLed.cpp

36 lines
854 B
C++
Raw Permalink Normal View History

2022-07-02 13:04:34 +08:00
#include "StatusLed.h"
2021-08-29 17:00:30 +08:00
2022-07-02 13:04:34 +08:00
StatusLed::StatusLed()
2021-08-29 17:00:30 +08:00
{
pinMode(STATUS_LED_PIN, OUTPUT);
digitalWrite(STATUS_LED_PIN, HIGH);
}
static void BlinkTask()
{
digitalWrite(STATUS_LED_PIN, !digitalRead(STATUS_LED_PIN)); // set pin to the opposite state
}
2022-07-02 13:04:34 +08:00
void StatusLed::SetBlinkRate(BlinkRate rate)
2021-08-29 17:00:30 +08:00
{
switch (rate)
{
case BlinkRate::RateAlwaysOn:
flipper.detach();
digitalWrite(STATUS_LED_PIN, LOW);
break;
case BlinkRate::RateAlwaysOff:
flipper.detach();
digitalWrite(STATUS_LED_PIN, HIGH);
break;
2021-08-29 22:14:08 +08:00
case BlinkRate::Rate5Hz:
flipper.attach(0.1, BlinkTask);
2021-08-29 17:00:30 +08:00
break;
case BlinkRate::Rate2Hz:
2021-08-29 22:14:08 +08:00
flipper.attach(0.25, BlinkTask);
2021-08-29 17:00:30 +08:00
break;
case BlinkRate::Rate0_5Hz:
2021-08-29 22:14:08 +08:00
flipper.attach(1.0, BlinkTask);
2021-08-29 17:00:30 +08:00
break;
}
}