mbed_example
/
rtos_isr
isr example
main.cpp@1:3043ec651794, 2012-07-13 (annotated)
- Committer:
- emilmont
- Date:
- Fri Jul 13 11:48:28 2012 +0000
- Revision:
- 1:3043ec651794
- Parent:
- 0:4979ad0f5cb9
- Child:
- 2:3ded4c6c9dff
First implementation
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
emilmont | 1:3043ec651794 | 1 | #include "mbed.h" |
emilmont | 1:3043ec651794 | 2 | #include "rtos.h" |
mbed_official | 0:4979ad0f5cb9 | 3 | |
emilmont | 1:3043ec651794 | 4 | Queue<uint32_t, 5> queue; |
emilmont | 1:3043ec651794 | 5 | |
emilmont | 1:3043ec651794 | 6 | DigitalOut myled(LED1); |
emilmont | 1:3043ec651794 | 7 | |
emilmont | 1:3043ec651794 | 8 | void queue_isr() { |
emilmont | 1:3043ec651794 | 9 | queue.put((uint32_t*)2); |
emilmont | 1:3043ec651794 | 10 | myled = !myled; |
emilmont | 1:3043ec651794 | 11 | } |
emilmont | 1:3043ec651794 | 12 | |
emilmont | 1:3043ec651794 | 13 | void queue_thread(void const *argument) { |
emilmont | 1:3043ec651794 | 14 | while (true) { |
emilmont | 1:3043ec651794 | 15 | queue.put((uint32_t*)1); |
emilmont | 1:3043ec651794 | 16 | Thread::wait(1000); |
emilmont | 1:3043ec651794 | 17 | } |
emilmont | 1:3043ec651794 | 18 | } |
emilmont | 1:3043ec651794 | 19 | |
emilmont | 1:3043ec651794 | 20 | int main (void) { |
emilmont | 1:3043ec651794 | 21 | Thread thread(queue_thread); |
emilmont | 1:3043ec651794 | 22 | |
emilmont | 1:3043ec651794 | 23 | Ticker ticker; |
emilmont | 1:3043ec651794 | 24 | ticker.attach(queue_isr, 1.0); |
emilmont | 1:3043ec651794 | 25 | |
emilmont | 1:3043ec651794 | 26 | while (true) { |
emilmont | 1:3043ec651794 | 27 | osEvent evt = queue.get(); |
emilmont | 1:3043ec651794 | 28 | if (evt.status != osEventMessage) { |
emilmont | 1:3043ec651794 | 29 | printf("queue->get() returned %02x status\n\r", evt.status); |
emilmont | 1:3043ec651794 | 30 | } else { |
emilmont | 1:3043ec651794 | 31 | printf("queue->get() returned %d\n\r", evt.value.v); |
emilmont | 1:3043ec651794 | 32 | } |
emilmont | 1:3043ec651794 | 33 | } |
emilmont | 1:3043ec651794 | 34 | } |