Two LEDs blink at different frequencies controlled by two timers. Two additional LEDs connected to PWM change brightness gradually also at different rates.
Diff: main.cpp
- Revision:
- 0:3eb6cb11b409
- Child:
- 1:75e11b7fe6d7
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Mar 30 13:31:20 2018 +0000 @@ -0,0 +1,38 @@ +#include "mbed.h" +// #include "rtos.h" + +Ticker timer1, timer2, timer3, timer4; +DigitalOut digled1(LED1), digled2(LED2); +PwmOut pwmled3(LED3), pwmled4(LED4); + +// DigitalIn digin5(p5); +DigitalOut digout7(p7); + +void task1() +{ while (1) wait(0.3); } + +// Thread th1(&task1, NULL, 50, 512, malloc(512)); +// Thread th2(&task1, NULL, 51, 512, malloc(512)); + +void flipled1() { digled1 = !digled1;} +void flipled2 () { digled2 = !digled2; } +void changeled3() +{ static float pwmval=0.0; + static int seq=0; + seq=(seq+1) % 100; // 1-100 + pwmval= float(seq*seq) / 10000.0; + pwmled3.write(pwmval); } +void changeled4() +{ static float pwmval=0.0; + static int seq=0; + seq=(seq+1) % 100; // 1-100 + pwmval= float(seq*seq) / 10000.0; + pwmled4.write(pwmval); } + +int main() { + timer1.attach(&flipled1, 0.8); + timer2.attach(&flipled2, 0.35); + timer3.attach(&changeled3, 0.005); + timer4.attach(&changeled4, 0.003); + while(1) { digout7= ! digout7; } } +