a

Committer:
lucaspennati
Date:
Fri Nov 30 11:49:21 2018 +0000
Revision:
1:1d5875aad591
Parent:
0:6ab5b8697bfb
Published

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lmottola 0:6ab5b8697bfb 1 #include "mbed.h"
lmottola 0:6ab5b8697bfb 2
lmottola 0:6ab5b8697bfb 3 DigitalOut led1(LED1);
lmottola 0:6ab5b8697bfb 4 InterruptIn button(USER_BUTTON);
lmottola 0:6ab5b8697bfb 5 EventQueue queue(32 * EVENTS_EVENT_SIZE);
lmottola 0:6ab5b8697bfb 6 Thread t;
lmottola 0:6ab5b8697bfb 7
lucaspennati 1:1d5875aad591 8 time_t last_click;
lmottola 0:6ab5b8697bfb 9
lmottola 0:6ab5b8697bfb 10 void fall_handler(void) {
lucaspennati 1:1d5875aad591 11 printf("Button pressed\r\n");
lucaspennati 1:1d5875aad591 12
lucaspennati 1:1d5875aad591 13 time_t current = time(NULL);
lucaspennati 1:1d5875aad591 14
lucaspennati 1:1d5875aad591 15 if (current - last_click <= 2) {
lucaspennati 1:1d5875aad591 16 // Turn on the led, wait one sec, and then turn it off
lucaspennati 1:1d5875aad591 17 led1 = !led1;
lucaspennati 1:1d5875aad591 18 wait(0.5);
lucaspennati 1:1d5875aad591 19 led1 = !led1;
lucaspennati 1:1d5875aad591 20 }
lucaspennati 1:1d5875aad591 21
lucaspennati 1:1d5875aad591 22 // Update the last_click time
lucaspennati 1:1d5875aad591 23 last_click = current;
lmottola 0:6ab5b8697bfb 24 }
lmottola 0:6ab5b8697bfb 25
lmottola 0:6ab5b8697bfb 26 int main() {
lucaspennati 1:1d5875aad591 27 // We start by setting a last click bogus time
lucaspennati 1:1d5875aad591 28 last_click = time(NULL);
lucaspennati 1:1d5875aad591 29
lmottola 0:6ab5b8697bfb 30 // Start the event queue
lmottola 0:6ab5b8697bfb 31 t.start(callback(&queue, &EventQueue::dispatch_forever));
lmottola 0:6ab5b8697bfb 32 button.fall(queue.event(fall_handler));
lucaspennati 1:1d5875aad591 33
lucaspennati 1:1d5875aad591 34 printf("Setup complete\n");
lmottola 0:6ab5b8697bfb 35 }