Additional events example

Committer:
Jennifer Plunkett
Date:
Mon Aug 13 13:46:15 2018 -0500
Revision:
5:69c11c7877b6
Parent:
4:20d7dabbd3b5
Update mbed-os

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) {
Jennifer Plunkett 4:20d7dabbd3b5 9 printf("rise_handler in context %p\r\n", Thread::gettid());
mab5449 0:aea2e03f5625 10 // Toggle LED
mab5449 0:aea2e03f5625 11 led1 = !led1;
mab5449 0:aea2e03f5625 12 }
mab5449 0:aea2e03f5625 13
mab5449 0:aea2e03f5625 14 void fall_handler(void) {
mab5449 0:aea2e03f5625 15 printf("fall_handler in context %p\r\n", Thread::gettid());
mab5449 0:aea2e03f5625 16 // Toggle LED
mab5449 0:aea2e03f5625 17 led1 = !led1;
mab5449 0:aea2e03f5625 18 }
mab5449 0:aea2e03f5625 19
mab5449 0:aea2e03f5625 20 int main() {
mab5449 0:aea2e03f5625 21 // Start the event queue
mab5449 0:aea2e03f5625 22 t.start(callback(&queue, &EventQueue::dispatch_forever));
mab5449 0:aea2e03f5625 23 printf("Starting in context %p\r\n", Thread::gettid());
mab5449 0:aea2e03f5625 24 // The 'rise' handler will execute in IRQ context
mab5449 0:aea2e03f5625 25 sw.rise(rise_handler);
mab5449 0:aea2e03f5625 26 // The 'fall' handler will execute in the context of thread 't'
mab5449 0:aea2e03f5625 27 sw.fall(queue.event(fall_handler));
mab5449 0:aea2e03f5625 28 }