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