36 lines
863 B
C++
36 lines
863 B
C++
#include "status_blink.h"
|
|
|
|
StatusBlink::StatusBlink()
|
|
{
|
|
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
|
|
}
|
|
|
|
void StatusBlink::SetBlinkRate(BlinkRate rate)
|
|
{
|
|
switch (rate)
|
|
{
|
|
case BlinkRate::RateAlwaysOn:
|
|
flipper.detach();
|
|
digitalWrite(STATUS_LED_PIN, LOW);
|
|
break;
|
|
case BlinkRate::RateAlwaysOff:
|
|
flipper.detach();
|
|
digitalWrite(STATUS_LED_PIN, HIGH);
|
|
break;
|
|
case BlinkRate::Rate5Hz:
|
|
flipper.attach(0.1, BlinkTask);
|
|
break;
|
|
case BlinkRate::Rate2Hz:
|
|
flipper.attach(0.25, BlinkTask);
|
|
break;
|
|
case BlinkRate::Rate0_5Hz:
|
|
flipper.attach(1.0, BlinkTask);
|
|
break;
|
|
}
|
|
} |