Additional events example

Committer:
Jennifer Plunkett
Date:
Mon Aug 13 13:44:44 2018 -0500
Revision:
3:4f5870c9c712
Parent:
1:3ee1c217f3cb
Child:
4:20d7dabbd3b5
Remove mbed events

Who changed what in which revision?

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