Alexander M / Mbed 2 deprecated LEDDemo2

Dependencies:   mbed

Committer:
fuenfundachtzig
Date:
Sun Nov 07 00:30:07 2010 +0000
Revision:
0:f7be784c668a

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fuenfundachtzig 0:f7be784c668a 1
fuenfundachtzig 0:f7be784c668a 2 // show a "progress bar" using the four blue LED
fuenfundachtzig 0:f7be784c668a 3 //
fuenfundachtzig 0:f7be784c668a 4 // by (85)
fuenfundachtzig 0:f7be784c668a 5
fuenfundachtzig 0:f7be784c668a 6 #include "mbed.h"
fuenfundachtzig 0:f7be784c668a 7
fuenfundachtzig 0:f7be784c668a 8 PwmOut led1(LED1);
fuenfundachtzig 0:f7be784c668a 9 PwmOut led2(LED2);
fuenfundachtzig 0:f7be784c668a 10 PwmOut led3(LED3);
fuenfundachtzig 0:f7be784c668a 11 PwmOut led4(LED4);
fuenfundachtzig 0:f7be784c668a 12
fuenfundachtzig 0:f7be784c668a 13 float done = 0.0;
fuenfundachtzig 0:f7be784c668a 14 int mode = 0;
fuenfundachtzig 0:f7be784c668a 15
fuenfundachtzig 0:f7be784c668a 16 float zerolim(float a) {
fuenfundachtzig 0:f7be784c668a 17 // returns a^2 for a >= 0
fuenfundachtzig 0:f7be784c668a 18 return a < 0. ? 0. : a*a;
fuenfundachtzig 0:f7be784c668a 19 }
fuenfundachtzig 0:f7be784c668a 20
fuenfundachtzig 0:f7be784c668a 21 int main() {
fuenfundachtzig 0:f7be784c668a 22 while (1) {
fuenfundachtzig 0:f7be784c668a 23 if (!(mode & 1)) {
fuenfundachtzig 0:f7be784c668a 24 done += 0.01;
fuenfundachtzig 0:f7be784c668a 25 if (done >= 1.1)
fuenfundachtzig 0:f7be784c668a 26 ++mode;
fuenfundachtzig 0:f7be784c668a 27 }
fuenfundachtzig 0:f7be784c668a 28 if (mode & 1) {
fuenfundachtzig 0:f7be784c668a 29 done -= 0.01;
fuenfundachtzig 0:f7be784c668a 30 if (done <= -0.1)
fuenfundachtzig 0:f7be784c668a 31 ++mode;
fuenfundachtzig 0:f7be784c668a 32 }
fuenfundachtzig 0:f7be784c668a 33 /*
fuenfundachtzig 0:f7be784c668a 34 // interesting, but not intended
fuenfundachtzig 0:f7be784c668a 35 led1 = (done*4)*(done*4);
fuenfundachtzig 0:f7be784c668a 36 led2 = (done*4-1)*(done*4-1);
fuenfundachtzig 0:f7be784c668a 37 led3 = (done*4-2)*(done*4-2);
fuenfundachtzig 0:f7be784c668a 38 led4 = (done*4-3)*(done*4-3);
fuenfundachtzig 0:f7be784c668a 39 */
fuenfundachtzig 0:f7be784c668a 40 /*
fuenfundachtzig 0:f7be784c668a 41 // linear
fuenfundachtzig 0:f7be784c668a 42 led1 = done*4;
fuenfundachtzig 0:f7be784c668a 43 led2 = done*4-1;
fuenfundachtzig 0:f7be784c668a 44 led3 = done*4-2;
fuenfundachtzig 0:f7be784c668a 45 led4 = done*4-3;
fuenfundachtzig 0:f7be784c668a 46 */
fuenfundachtzig 0:f7be784c668a 47 led1 = zerolim(done*4);
fuenfundachtzig 0:f7be784c668a 48 led2 = zerolim(done*4-1);
fuenfundachtzig 0:f7be784c668a 49 led3 = zerolim(done*4-2);
fuenfundachtzig 0:f7be784c668a 50 led4 = zerolim(done*4-3);
fuenfundachtzig 0:f7be784c668a 51 wait(0.01);
fuenfundachtzig 0:f7be784c668a 52 }
fuenfundachtzig 0:f7be784c668a 53 }