Rtos API example

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "cmsis_os.h"
00003 
00004 #if defined(MBED_RTOS_SINGLE_THREAD)
00005   #error [NOT_SUPPORTED] test not supported
00006 #endif
00007 
00008 DigitalOut LEDs[4] = {
00009     DigitalOut(LED1), DigitalOut(LED2), DigitalOut(LED3), DigitalOut(LED4)
00010 };
00011 
00012 void blink(void const *n) {
00013     LEDs[(int)n] = !LEDs[(int)n];
00014 }
00015 
00016 osTimerDef(blink_0, blink);
00017 osTimerDef(blink_1, blink);
00018 osTimerDef(blink_2, blink);
00019 osTimerDef(blink_3, blink);
00020 
00021 int main(void) {
00022     osTimerId timer_0 = osTimerCreate(osTimer(blink_0), osTimerPeriodic, (void *)0);
00023     osTimerId timer_1 = osTimerCreate(osTimer(blink_1), osTimerPeriodic, (void *)1);
00024     osTimerId timer_2 = osTimerCreate(osTimer(blink_2), osTimerPeriodic, (void *)2);
00025     osTimerId timer_3 = osTimerCreate(osTimer(blink_3), osTimerPeriodic, (void *)3);
00026 
00027     osTimerStart(timer_0, 2000);
00028     osTimerStart(timer_1, 1000);
00029     osTimerStart(timer_2,  500);
00030     osTimerStart(timer_3,  250);
00031 
00032     osDelay(osWaitForever);
00033 }