mbed_example
/
rtos_isr
isr example
main.cpp
- Committer:
- emilmont
- Date:
- 2012-11-23
- Revision:
- 2:3ded4c6c9dff
- Parent:
- 1:3043ec651794
- Child:
- 4:40078e697304
File content as of revision 2:3ded4c6c9dff:
#include "mbed.h" #include "rtos.h" Queue<uint32_t, 5> queue; DigitalOut myled(LED1); void queue_isr() { queue.put((uint32_t*)2); myled = !myled; } void queue_thread(void const *args) { while (true) { queue.put((uint32_t*)1); Thread::wait(1000); } } int main (void) { Thread thread(queue_thread); Ticker ticker; ticker.attach(queue_isr, 1.0); while (true) { osEvent evt = queue.get(); if (evt.status != osEventMessage) { printf("queue->get() returned %02x status\n\r", evt.status); } else { printf("queue->get() returned %d\n\r", evt.value.v); } } }