Lucas Pennati
/
BlinkThreadCallback2LED
Pennati
main.cpp@0:89dd63b255c8, 2018-11-15 (annotated)
- Committer:
- lucaspennati
- Date:
- Thu Nov 15 16:35:29 2018 +0000
- Revision:
- 0:89dd63b255c8
Initial Implementation
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lucaspennati | 0:89dd63b255c8 | 1 | #include "mbed.h" |
lucaspennati | 0:89dd63b255c8 | 2 | |
lucaspennati | 0:89dd63b255c8 | 3 | |
lucaspennati | 0:89dd63b255c8 | 4 | DigitalOut led1(LED1); |
lucaspennati | 0:89dd63b255c8 | 5 | DigitalOut led2(LED2); |
lucaspennati | 0:89dd63b255c8 | 6 | |
lucaspennati | 0:89dd63b255c8 | 7 | |
lucaspennati | 0:89dd63b255c8 | 8 | // Blink function toggles the led in a long running loop |
lucaspennati | 0:89dd63b255c8 | 9 | void blink(DigitalOut *led) { |
lucaspennati | 0:89dd63b255c8 | 10 | *led = !*led; |
lucaspennati | 0:89dd63b255c8 | 11 | wait(1); |
lucaspennati | 0:89dd63b255c8 | 12 | *led = !*led; |
lucaspennati | 0:89dd63b255c8 | 13 | } |
lucaspennati | 0:89dd63b255c8 | 14 | |
lucaspennati | 0:89dd63b255c8 | 15 | // Spawns a thread to run blink for 5 seconds |
lucaspennati | 0:89dd63b255c8 | 16 | int main() { |
lucaspennati | 0:89dd63b255c8 | 17 | while (true) { |
lucaspennati | 0:89dd63b255c8 | 18 | Thread thread; |
lucaspennati | 0:89dd63b255c8 | 19 | Thread thread2; |
lucaspennati | 0:89dd63b255c8 | 20 | |
lucaspennati | 0:89dd63b255c8 | 21 | thread.start(callback(blink, &led1)); |
lucaspennati | 0:89dd63b255c8 | 22 | thread.join(); |
lucaspennati | 0:89dd63b255c8 | 23 | |
lucaspennati | 0:89dd63b255c8 | 24 | thread2.start(callback(blink, &led2)); |
lucaspennati | 0:89dd63b255c8 | 25 | thread2.join(); |
lucaspennati | 0:89dd63b255c8 | 26 | } |
lucaspennati | 0:89dd63b255c8 | 27 | } |