Dar Leg
/
RGBLedInterrupt
Show Flashing RGB LED Interrupted by two keys two turn on green and blue LEDs on the AZ3166
main.cpp@0:53c4ae3fbc5b, 2021-02-04 (annotated)
- Committer:
- appa
- Date:
- Thu Feb 04 16:41:22 2021 +0000
- Revision:
- 0:53c4ae3fbc5b
Flashing Random RGB LED interrupt with buttons
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
appa | 0:53c4ae3fbc5b | 1 | #include "mbed.h" |
appa | 0:53c4ae3fbc5b | 2 | #include "platform/mbed_thread.h" |
appa | 0:53c4ae3fbc5b | 3 | #include "RPinName.h" |
appa | 0:53c4ae3fbc5b | 4 | |
appa | 0:53c4ae3fbc5b | 5 | // Blinking rate in milliseconds |
appa | 0:53c4ae3fbc5b | 6 | #define loopdelay 1000 |
appa | 0:53c4ae3fbc5b | 7 | #define betweenleds 500 |
appa | 0:53c4ae3fbc5b | 8 | // Initialise the digital pins for LEDs as an output |
appa | 0:53c4ae3fbc5b | 9 | DigitalOut ledg(led1); // WiFi or same as LED1 |
appa | 0:53c4ae3fbc5b | 10 | DigitalOut ledb(led2); // Azure |
appa | 0:53c4ae3fbc5b | 11 | DigitalOut ledy(led3); // User |
appa | 0:53c4ae3fbc5b | 12 | |
appa | 0:53c4ae3fbc5b | 13 | InterruptIn ButtonA(Key2); |
appa | 0:53c4ae3fbc5b | 14 | InterruptIn ButtonB(Key3); |
appa | 0:53c4ae3fbc5b | 15 | |
appa | 0:53c4ae3fbc5b | 16 | // Initialise the pulse-width-moudulation for RGB LED |
appa | 0:53c4ae3fbc5b | 17 | PwmOut RGBR(RedRGB); |
appa | 0:53c4ae3fbc5b | 18 | PwmOut RGBG(GreenRGB); |
appa | 0:53c4ae3fbc5b | 19 | PwmOut RGBB(BlueRGB); |
appa | 0:53c4ae3fbc5b | 20 | |
appa | 0:53c4ae3fbc5b | 21 | Serial AZ(tx, rx); // tx, rx |
appa | 0:53c4ae3fbc5b | 22 | |
appa | 0:53c4ae3fbc5b | 23 | void ToggleGreen() |
appa | 0:53c4ae3fbc5b | 24 | { |
appa | 0:53c4ae3fbc5b | 25 | ledg = !ledg; |
appa | 0:53c4ae3fbc5b | 26 | } |
appa | 0:53c4ae3fbc5b | 27 | void ToggleBlue() |
appa | 0:53c4ae3fbc5b | 28 | { |
appa | 0:53c4ae3fbc5b | 29 | ledb = !ledb; |
appa | 0:53c4ae3fbc5b | 30 | } |
appa | 0:53c4ae3fbc5b | 31 | |
appa | 0:53c4ae3fbc5b | 32 | int main() |
appa | 0:53c4ae3fbc5b | 33 | { |
appa | 0:53c4ae3fbc5b | 34 | //ButtonA.rise(&ToggleGreen); |
appa | 0:53c4ae3fbc5b | 35 | //ButtonB.rise(&ToggleBlue); |
appa | 0:53c4ae3fbc5b | 36 | ButtonA.mode(PullUp); |
appa | 0:53c4ae3fbc5b | 37 | ButtonA.fall(&ToggleGreen); |
appa | 0:53c4ae3fbc5b | 38 | ButtonB.mode(PullUp); |
appa | 0:53c4ae3fbc5b | 39 | ButtonB.fall(&ToggleBlue); |
appa | 0:53c4ae3fbc5b | 40 | |
appa | 0:53c4ae3fbc5b | 41 | while(1) { |
appa | 0:53c4ae3fbc5b | 42 | |
appa | 0:53c4ae3fbc5b | 43 | AZ.printf("Hi There from Appa\r\n"); |
appa | 0:53c4ae3fbc5b | 44 | RGBR = 0; |
appa | 0:53c4ae3fbc5b | 45 | AZ.printf("Random Green RGB LED\r\n"); |
appa | 0:53c4ae3fbc5b | 46 | RGBG = rand() % 100; |
appa | 0:53c4ae3fbc5b | 47 | thread_sleep_for(betweenleds); |
appa | 0:53c4ae3fbc5b | 48 | RGBG = 0; |
appa | 0:53c4ae3fbc5b | 49 | AZ.printf("Random Blue RGB LED\r\n"); |
appa | 0:53c4ae3fbc5b | 50 | RGBB = rand() % 100; |
appa | 0:53c4ae3fbc5b | 51 | thread_sleep_for(betweenleds); |
appa | 0:53c4ae3fbc5b | 52 | RGBB = 0; |
appa | 0:53c4ae3fbc5b | 53 | AZ.printf("Random Red RGB LED\r\n"); |
appa | 0:53c4ae3fbc5b | 54 | RGBR = rand() % 100; |
appa | 0:53c4ae3fbc5b | 55 | thread_sleep_for(loopdelay); |
appa | 0:53c4ae3fbc5b | 56 | } |
appa | 0:53c4ae3fbc5b | 57 | } |