Basic example showing the CMSIS-RTOS timer API

Dependencies:   mbed mbed-rtos

mbed 2 and mbed OS 5

This is an mbed 2 example. mbed OS 5 has integrated the mbed library with mbed-rtos. For an mbed-os example, please see:

Import programrtos_timer

timer example

Revision:
1:50f9df2d7dd6
Parent:
0:da2a05efb62e
--- a/main.cpp	Fri Jul 13 16:05:43 2012 +0000
+++ b/main.cpp	Fri Jul 13 16:08:05 2012 +0000
@@ -0,0 +1,29 @@
+#include "mbed.h"
+#include "cmsis_os.h"
+
+DigitalOut LEDs[4] = {
+    DigitalOut(LED1), DigitalOut(LED2), DigitalOut(LED3), DigitalOut(LED4)
+};
+
+void blink(void const *n) {
+    LEDs[(int)n] = !LEDs[(int)n];
+}
+
+osTimerDef(blink_0, blink);
+osTimerDef(blink_1, blink);
+osTimerDef(blink_2, blink);
+osTimerDef(blink_3, blink);
+
+int main(void) {
+    osTimerId timer_0 = osTimerCreate(osTimer(blink_0), osTimerPeriodic, (void *)0);
+    osTimerId timer_1 = osTimerCreate(osTimer(blink_1), osTimerPeriodic, (void *)1);
+    osTimerId timer_2 = osTimerCreate(osTimer(blink_2), osTimerPeriodic, (void *)2);
+    osTimerId timer_3 = osTimerCreate(osTimer(blink_3), osTimerPeriodic, (void *)3);
+    
+    osTimerStart(timer_0, 2000);
+    osTimerStart(timer_1, 1000);
+    osTimerStart(timer_2,  500);
+    osTimerStart(timer_3,  250);
+    
+    osDelay(osWaitForever);
+}