Marco Zecchini
/
Example_RTOS
Rtos API example
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 #include "rtos.h" 00003 00004 #if defined(MBED_RTOS_SINGLE_THREAD) 00005 #error [NOT_SUPPORTED] test not supported 00006 #endif 00007 00008 Queue<uint32_t, 5> queue; 00009 00010 DigitalOut myled(LED1); 00011 00012 void queue_isr() { 00013 queue.put((uint32_t*)2); 00014 myled = !myled; 00015 } 00016 00017 void queue_thread(void const *argument) { 00018 while (true) { 00019 queue.put((uint32_t*)1); 00020 Thread::wait(1000); 00021 } 00022 } 00023 00024 int main (void) { 00025 Thread thread(queue_thread); 00026 00027 Ticker ticker; 00028 ticker.attach(queue_isr, 1.0); 00029 00030 while (true) { 00031 osEvent evt = queue.get(); 00032 if (evt.status != osEventMessage) { 00033 printf("queue->get() returned %02x status\n\r", evt.status); 00034 } else { 00035 printf("queue->get() returned %d\n\r", evt.value.v); 00036 } 00037 } 00038 }
Generated on Sun Jul 17 2022 08:25:26 by 1.7.2