-
Notifications
You must be signed in to change notification settings - Fork 95
/
Copy pathblink_led.cpp
59 lines (50 loc) · 952 Bytes
/
blink_led.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "blink_led.h"
Ticker blinker;
enum {
LED_ON,
LED_OFF,
LED_SLOW,
LED_MEDIUM,
LED_FAST,
} ledState;
void changeState() {
digitalWrite(LED, !(digitalRead(LED))); // Invert the current state of the LED
}
void ledInit() {
pinMode(LED, OUTPUT);
}
void ledOn() {
if (ledState != LED_ON) {
ledState = LED_ON;
blinker.detach();
digitalWrite(LED, LOW);
}
}
void ledOff() {
if (ledState != LED_OFF) {
ledState = LED_OFF;
blinker.detach();
digitalWrite(LED, HIGH);
}
}
void ledSlow() {
if (ledState != LED_SLOW) {
ledState = LED_SLOW;
blinker.detach();
blinker.attach_ms(1000, changeState);
}
}
void ledMedium() {
if (ledState != LED_MEDIUM) {
ledState = LED_MEDIUM;
blinker.detach();
blinker.attach_ms(250, changeState);
}
}
void ledFast() {
if (ledState != LED_FAST) {
ledState = LED_FAST;
blinker.detach();
blinker.attach_ms(100, changeState);
}
}