Test program making the LEDs blink.

Dependencies:   mbed-rtos mbed-src

Committer:
jmgomez
Date:
Tue Sep 23 12:54:34 2014 +0000
Revision:
0:1bbbbd316896
First upload, using the blink program.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jmgomez 0:1bbbbd316896 1 /******************************************************************************
jmgomez 0:1bbbbd316896 2 * DESCRIPTION:
jmgomez 0:1bbbbd316896 3 * A "Blinky" CMSIS RTOS program which demonstrates another safe way
jmgomez 0:1bbbbd316896 4 * to pass arguments to threads during thread creation. In this case,
jmgomez 0:1bbbbd316896 5 * a structure is used to pass multiple arguments.
jmgomez 0:1bbbbd316896 6 * AUTHOR: Jose M. Gomez
jmgomez 0:1bbbbd316896 7 * LAST REVISED: 23/SEP/2014
jmgomez 0:1bbbbd316896 8 ******************************************************************************/
jmgomez 0:1bbbbd316896 9
jmgomez 0:1bbbbd316896 10 #include <mbed.h>
jmgomez 0:1bbbbd316896 11 #include <cmsis_os.h>
jmgomez 0:1bbbbd316896 12 #include <stdint.h>
jmgomez 0:1bbbbd316896 13 #include <limits.h>
jmgomez 0:1bbbbd316896 14
jmgomez 0:1bbbbd316896 15 #define NUM_THREADS 6
jmgomez 0:1bbbbd316896 16
jmgomez 0:1bbbbd316896 17 DigitalOut red(LED1);
jmgomez 0:1bbbbd316896 18 DigitalOut green(LED2);
jmgomez 0:1bbbbd316896 19 DigitalOut blue(LED3);
jmgomez 0:1bbbbd316896 20
jmgomez 0:1bbbbd316896 21 void Timer1_Callback (void const *arg) {
jmgomez 0:1bbbbd316896 22 red = !red; // update the counter
jmgomez 0:1bbbbd316896 23 }
jmgomez 0:1bbbbd316896 24
jmgomez 0:1bbbbd316896 25 void Timer2_Callback (void const *arg) {
jmgomez 0:1bbbbd316896 26 blue=!blue; // update the counter
jmgomez 0:1bbbbd316896 27 }
jmgomez 0:1bbbbd316896 28
jmgomez 0:1bbbbd316896 29 osTimerDef (timer1, Timer1_Callback);
jmgomez 0:1bbbbd316896 30 osTimerDef (timer2, Timer2_Callback);
jmgomez 0:1bbbbd316896 31
jmgomez 0:1bbbbd316896 32 int main (void) {
jmgomez 0:1bbbbd316896 33 osTimerId id1;
jmgomez 0:1bbbbd316896 34 osTimerId id2;
jmgomez 0:1bbbbd316896 35
jmgomez 0:1bbbbd316896 36 green = 0;
jmgomez 0:1bbbbd316896 37 id1 = osTimerCreate (osTimer(timer1), osTimerPeriodic, NULL);
jmgomez 0:1bbbbd316896 38 osTimerStart (id1, 100UL);
jmgomez 0:1bbbbd316896 39 id2 = osTimerCreate (osTimer(timer2), osTimerPeriodic, NULL);
jmgomez 0:1bbbbd316896 40 osTimerStart (id2, 157UL);
jmgomez 0:1bbbbd316896 41 green = 1;
jmgomez 0:1bbbbd316896 42 }