Lucas Pennati
/
BlinkButton2Sec
a
main.cpp@1:1d5875aad591, 2018-11-30 (annotated)
- Committer:
- lucaspennati
- Date:
- Fri Nov 30 11:49:21 2018 +0000
- Revision:
- 1:1d5875aad591
- Parent:
- 0:6ab5b8697bfb
Published
Who changed what in which revision?
User | Revision | Line number | New 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 | } |