Basic example usage of mbed RTOS (complete) Created for FTF2014.

Dependencies:   mbed-rtos mbed

Fork of frdm_rtos by Freescale

Revision:
0:7fd883bfe9a3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Apr 03 11:51:25 2014 +0000
@@ -0,0 +1,43 @@
+#include "mbed.h"
+#include "rtos.h"
+
+DigitalOut led1(LED1);
+InterruptIn sw2(SW2);
+uint32_t button_pressed;
+Thread *thread2;
+
+void sw2_press(void)
+{
+    thread2->signal_set(0x1);
+}
+
+void led_thread(void const *argument)
+{
+    while (true) {
+        led1 = !led1;
+        Thread::wait(1000);
+    }
+}
+
+void button_thread(void const *argument)
+{
+    while (true) {
+        Thread::signal_wait(0x1);
+        button_pressed++;
+    }
+}
+
+int main()
+{
+    Thread thread(led_thread);
+    thread2 = new Thread(button_thread);
+
+    button_pressed = 0;
+    sw2.fall(&sw2_press);
+    while (true) {
+        Thread::wait(5000);
+        printf("SW2 was pressed (last 5 seconds): %d \n", button_pressed);
+        fflush(stdout);
+        button_pressed = 0;
+    }
+}