Additional events example

Committer:
mab5449
Date:
Thu Jan 19 14:24:27 2017 -0600
Revision:
0:aea2e03f5625
Child:
1:3ee1c217f3cb
Initial commit. Ported code snippets to mbed OS 5 projects

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mab5449 0:aea2e03f5625 1 #include "mbed.h"
mab5449 0:aea2e03f5625 2 #include "mbed_events.h"
mab5449 0:aea2e03f5625 3
mab5449 0:aea2e03f5625 4 DigitalOut led1(LED1);
mab5449 0:aea2e03f5625 5 InterruptIn sw(SW2);
mab5449 0:aea2e03f5625 6 EventQueue queue(32 * EVENTS_EVENT_SIZE);
mab5449 0:aea2e03f5625 7 Thread t;
mab5449 0:aea2e03f5625 8
mab5449 0:aea2e03f5625 9 void rise_handler(void) {
mab5449 0:aea2e03f5625 10 printf("rise_handler in context %p\r\n", Thread::gettid());
mab5449 0:aea2e03f5625 11 // Toggle LED
mab5449 0:aea2e03f5625 12 led1 = !led1;
mab5449 0:aea2e03f5625 13 }
mab5449 0:aea2e03f5625 14
mab5449 0:aea2e03f5625 15 void fall_handler(void) {
mab5449 0:aea2e03f5625 16 printf("fall_handler in context %p\r\n", Thread::gettid());
mab5449 0:aea2e03f5625 17 // Toggle LED
mab5449 0:aea2e03f5625 18 led1 = !led1;
mab5449 0:aea2e03f5625 19 }
mab5449 0:aea2e03f5625 20
mab5449 0:aea2e03f5625 21 int main() {
mab5449 0:aea2e03f5625 22 // Start the event queue
mab5449 0:aea2e03f5625 23 t.start(callback(&queue, &EventQueue::dispatch_forever));
mab5449 0:aea2e03f5625 24 printf("Starting in context %p\r\n", Thread::gettid());
mab5449 0:aea2e03f5625 25 // The 'rise' handler will execute in IRQ context
mab5449 0:aea2e03f5625 26 sw.rise(rise_handler);
mab5449 0:aea2e03f5625 27 // The 'fall' handler will execute in the context of thread 't'
mab5449 0:aea2e03f5625 28 sw.fall(queue.event(fall_handler));
mab5449 0:aea2e03f5625 29 }
mab5449 0:aea2e03f5625 30