Mapuino_Hardware/src/status_blink.cpp

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;
}
}