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

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; }    }
+