Test program making the LEDs blink.
Dependencies: mbed-rtos mbed-src
Fork of TestLPCBlinky by
main.cpp@0:1bbbbd316896, 2014-09-23 (annotated)
- Committer:
- jmgomez
- Date:
- Tue Sep 23 12:54:34 2014 +0000
- Revision:
- 0:1bbbbd316896
- Child:
- 1:a33626482363
First upload, using the blink program.
Who changed what in which revision?
User | Revision | Line number | New 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 | } |