Franz Pucher
/
app-InterruptIn-Ticker-Timeout
Program from Mbed-Simulator for InterruptIn, Ticker, and Timeout
main.cpp@0:28ab61836d38, 2019-12-09 (annotated)
- Committer:
- fpucher
- Date:
- Mon Dec 09 11:17:47 2019 +0000
- Revision:
- 0:28ab61836d38
First Version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
fpucher | 0:28ab61836d38 | 1 | #include "mbed.h" |
fpucher | 0:28ab61836d38 | 2 | #define BUTTON1 p14 // push joystick pin |
fpucher | 0:28ab61836d38 | 3 | //#define BUTTON1 A1 // NUCLEO Taster A1 |
fpucher | 0:28ab61836d38 | 4 | |
fpucher | 0:28ab61836d38 | 5 | DigitalOut led1(LED1); |
fpucher | 0:28ab61836d38 | 6 | DigitalOut led2(LED2); // NUCLEO D2 |
fpucher | 0:28ab61836d38 | 7 | DigitalOut led3(LED3); // NUCLEO D3 |
fpucher | 0:28ab61836d38 | 8 | |
fpucher | 0:28ab61836d38 | 9 | Ticker t1; |
fpucher | 0:28ab61836d38 | 10 | Timeout t2; |
fpucher | 0:28ab61836d38 | 11 | InterruptIn btn(BUTTON1); |
fpucher | 0:28ab61836d38 | 12 | |
fpucher | 0:28ab61836d38 | 13 | void blink_led1() { |
fpucher | 0:28ab61836d38 | 14 | printf("Ticker fired\n"); |
fpucher | 0:28ab61836d38 | 15 | led1 = !led1; |
fpucher | 0:28ab61836d38 | 16 | } |
fpucher | 0:28ab61836d38 | 17 | |
fpucher | 0:28ab61836d38 | 18 | void toggle_led2() { |
fpucher | 0:28ab61836d38 | 19 | printf("BUTTON1 fall invoked\n"); |
fpucher | 0:28ab61836d38 | 20 | led2 = !led2; |
fpucher | 0:28ab61836d38 | 21 | } |
fpucher | 0:28ab61836d38 | 22 | |
fpucher | 0:28ab61836d38 | 23 | void turn_led3_on() { |
fpucher | 0:28ab61836d38 | 24 | printf("Timeout fired\n"); |
fpucher | 0:28ab61836d38 | 25 | led3 = 1; |
fpucher | 0:28ab61836d38 | 26 | } |
fpucher | 0:28ab61836d38 | 27 | |
fpucher | 0:28ab61836d38 | 28 | int main() { |
fpucher | 0:28ab61836d38 | 29 | printf("Hello world!\n"); |
fpucher | 0:28ab61836d38 | 30 | printf("LED1 will blink every second, LED3 will toggle after 2.5 seconds, LED2 can be toggled through BUTTON1.\n"); |
fpucher | 0:28ab61836d38 | 31 | printf("-----------------------------------\n\n"); |
fpucher | 0:28ab61836d38 | 32 | |
fpucher | 0:28ab61836d38 | 33 | t1.attach(callback(&blink_led1), 1.0f); |
fpucher | 0:28ab61836d38 | 34 | t2.attach(callback(&turn_led3_on), 2.5f); |
fpucher | 0:28ab61836d38 | 35 | btn.fall(callback(&toggle_led2)); |
fpucher | 0:28ab61836d38 | 36 | |
fpucher | 0:28ab61836d38 | 37 | while(1) {} |
fpucher | 0:28ab61836d38 | 38 | // wait_ms(osWaitForever); |
fpucher | 0:28ab61836d38 | 39 | } |