Two LEDs blink at different frequencies controlled by two timers. Two additional LEDs connected to PWM change brightness gradually also at different rates.

Dependencies:   mbed

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?

UserRevisionLine numberNew 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