main.cpp 669 B

12345678910111213141516171819202122232425262728293031323334
  1. #include "mbed.h"
  2. #include "rtos.h"
  3. Queue<uint32_t, 5> queue;
  4. DigitalOut myled(LED1);
  5. void queue_isr() {
  6. queue.put((uint32_t*)2);
  7. myled = !myled;
  8. }
  9. void queue_thread(void const *argument) {
  10. while (true) {
  11. queue.put((uint32_t*)1);
  12. Thread::wait(1000);
  13. }
  14. }
  15. int main (void) {
  16. Thread thread(queue_thread);
  17. Ticker ticker;
  18. ticker.attach(queue_isr, 1.0);
  19. while (true) {
  20. osEvent evt = queue.get();
  21. if (evt.status != osEventMessage) {
  22. printf("queue->get() returned %02x status\n\r", evt.status);
  23. } else {
  24. printf("queue->get() returned %d\n\r", evt.value.v);
  25. }
  26. }
  27. }