Interrupt Ticker

Dependencies:   mbed

Revision:
0:d6e3d884c346
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Jan 27 14:40:31 2020 +0000
@@ -0,0 +1,39 @@
+#include "mbed.h"
+#define BUTTON1 p14     // push joystick pin
+//#define BUTTON1 A1    // NUCLEO Taster A1
+ 
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);  // NUCLEO D2
+DigitalOut led3(LED3);  // NUCLEO D3
+ 
+Ticker t1;
+Timeout t2;
+InterruptIn btn(BUTTON1);
+ 
+void blink_led1() {
+    printf("Ticker fired\n");
+    led1 = !led1;
+}
+ 
+void toggle_led2() {
+    printf("BUTTON1 fall invoked\n");
+    led2 = !led2;
+}
+ 
+void turn_led3_on() {
+    printf("Timeout fired\n");
+    led3 = 1;
+}
+ 
+int main() {
+    printf("Hello world!\n");
+    printf("LED1 will blink every second, LED3 will toggle after 2.5 seconds, LED2 can be toggled through BUTTON1.\n");
+    printf("-----------------------------------\n\n");
+ 
+    t1.attach(callback(&blink_led1), 1.0f);
+    t2.attach(callback(&turn_led3_on), 2.5f);
+    btn.fall(callback(&toggle_led2));
+ 
+    while(1) {}
+    // wait_ms(osWaitForever);
+}
\ No newline at end of file