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