Two LEDs blink at different frequencies controlled by two timers. Two additional LEDs connected to PWM change brightness gradually also at different rates.
main.cpp@0:3eb6cb11b409, 2018-03-30 (annotated)
- Committer:
- titanium
- Date:
- Fri Mar 30 13:31:20 2018 +0000
- Revision:
- 0:3eb6cb11b409
- Child:
- 1:75e11b7fe6d7
Two LEDs blink at different frequencies controlled by two timers. Two additional LEDs connected to PWM change brightness gradually also at different rates.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
titanium | 0:3eb6cb11b409 | 1 | #include "mbed.h" |
titanium | 0:3eb6cb11b409 | 2 | // #include "rtos.h" |
titanium | 0:3eb6cb11b409 | 3 | |
titanium | 0:3eb6cb11b409 | 4 | Ticker timer1, timer2, timer3, timer4; |
titanium | 0:3eb6cb11b409 | 5 | DigitalOut digled1(LED1), digled2(LED2); |
titanium | 0:3eb6cb11b409 | 6 | PwmOut pwmled3(LED3), pwmled4(LED4); |
titanium | 0:3eb6cb11b409 | 7 | |
titanium | 0:3eb6cb11b409 | 8 | // DigitalIn digin5(p5); |
titanium | 0:3eb6cb11b409 | 9 | DigitalOut digout7(p7); |
titanium | 0:3eb6cb11b409 | 10 | |
titanium | 0:3eb6cb11b409 | 11 | void task1() |
titanium | 0:3eb6cb11b409 | 12 | { while (1) wait(0.3); } |
titanium | 0:3eb6cb11b409 | 13 | |
titanium | 0:3eb6cb11b409 | 14 | // Thread th1(&task1, NULL, 50, 512, malloc(512)); |
titanium | 0:3eb6cb11b409 | 15 | // Thread th2(&task1, NULL, 51, 512, malloc(512)); |
titanium | 0:3eb6cb11b409 | 16 | |
titanium | 0:3eb6cb11b409 | 17 | void flipled1() { digled1 = !digled1;} |
titanium | 0:3eb6cb11b409 | 18 | void flipled2 () { digled2 = !digled2; } |
titanium | 0:3eb6cb11b409 | 19 | void changeled3() |
titanium | 0:3eb6cb11b409 | 20 | { static float pwmval=0.0; |
titanium | 0:3eb6cb11b409 | 21 | static int seq=0; |
titanium | 0:3eb6cb11b409 | 22 | seq=(seq+1) % 100; // 1-100 |
titanium | 0:3eb6cb11b409 | 23 | pwmval= float(seq*seq) / 10000.0; |
titanium | 0:3eb6cb11b409 | 24 | pwmled3.write(pwmval); } |
titanium | 0:3eb6cb11b409 | 25 | void changeled4() |
titanium | 0:3eb6cb11b409 | 26 | { static float pwmval=0.0; |
titanium | 0:3eb6cb11b409 | 27 | static int seq=0; |
titanium | 0:3eb6cb11b409 | 28 | seq=(seq+1) % 100; // 1-100 |
titanium | 0:3eb6cb11b409 | 29 | pwmval= float(seq*seq) / 10000.0; |
titanium | 0:3eb6cb11b409 | 30 | pwmled4.write(pwmval); } |
titanium | 0:3eb6cb11b409 | 31 | |
titanium | 0:3eb6cb11b409 | 32 | int main() { |
titanium | 0:3eb6cb11b409 | 33 | timer1.attach(&flipled1, 0.8); |
titanium | 0:3eb6cb11b409 | 34 | timer2.attach(&flipled2, 0.35); |
titanium | 0:3eb6cb11b409 | 35 | timer3.attach(&changeled3, 0.005); |
titanium | 0:3eb6cb11b409 | 36 | timer4.attach(&changeled4, 0.003); |
titanium | 0:3eb6cb11b409 | 37 | while(1) { digout7= ! digout7; } } |
titanium | 0:3eb6cb11b409 | 38 |