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

Committer:
emilmont
Date:
Fri Nov 23 11:01:45 2012 +0000
Revision:
2:2ced6669ccc4
Parent:
1:50f9df2d7dd6
update libraries

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 1:50f9df2d7dd6 1 #include "mbed.h"
emilmont 1:50f9df2d7dd6 2 #include "cmsis_os.h"
emilmont 1:50f9df2d7dd6 3
emilmont 1:50f9df2d7dd6 4 DigitalOut LEDs[4] = {
emilmont 1:50f9df2d7dd6 5 DigitalOut(LED1), DigitalOut(LED2), DigitalOut(LED3), DigitalOut(LED4)
emilmont 1:50f9df2d7dd6 6 };
emilmont 1:50f9df2d7dd6 7
emilmont 1:50f9df2d7dd6 8 void blink(void const *n) {
emilmont 1:50f9df2d7dd6 9 LEDs[(int)n] = !LEDs[(int)n];
emilmont 1:50f9df2d7dd6 10 }
emilmont 1:50f9df2d7dd6 11
emilmont 1:50f9df2d7dd6 12 osTimerDef(blink_0, blink);
emilmont 1:50f9df2d7dd6 13 osTimerDef(blink_1, blink);
emilmont 1:50f9df2d7dd6 14 osTimerDef(blink_2, blink);
emilmont 1:50f9df2d7dd6 15 osTimerDef(blink_3, blink);
emilmont 1:50f9df2d7dd6 16
emilmont 1:50f9df2d7dd6 17 int main(void) {
emilmont 1:50f9df2d7dd6 18 osTimerId timer_0 = osTimerCreate(osTimer(blink_0), osTimerPeriodic, (void *)0);
emilmont 1:50f9df2d7dd6 19 osTimerId timer_1 = osTimerCreate(osTimer(blink_1), osTimerPeriodic, (void *)1);
emilmont 1:50f9df2d7dd6 20 osTimerId timer_2 = osTimerCreate(osTimer(blink_2), osTimerPeriodic, (void *)2);
emilmont 1:50f9df2d7dd6 21 osTimerId timer_3 = osTimerCreate(osTimer(blink_3), osTimerPeriodic, (void *)3);
emilmont 1:50f9df2d7dd6 22
emilmont 1:50f9df2d7dd6 23 osTimerStart(timer_0, 2000);
emilmont 1:50f9df2d7dd6 24 osTimerStart(timer_1, 1000);
emilmont 1:50f9df2d7dd6 25 osTimerStart(timer_2, 500);
emilmont 1:50f9df2d7dd6 26 osTimerStart(timer_3, 250);
emilmont 1:50f9df2d7dd6 27
emilmont 1:50f9df2d7dd6 28 osDelay(osWaitForever);
emilmont 1:50f9df2d7dd6 29 }