Fading LEDs timer/interrupt and PWM based.

Dependencies:   mbed

Committer:
Schueler
Date:
Mon Oct 25 16:50:33 2010 +0000
Revision:
0:aa880864e976
1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Schueler 0:aa880864e976 1 #include "mbed.h"
Schueler 0:aa880864e976 2
Schueler 0:aa880864e976 3 PwmOut led1 (LED1);
Schueler 0:aa880864e976 4 PwmOut led2 (LED2);
Schueler 0:aa880864e976 5 PwmOut led3 (LED3);
Schueler 0:aa880864e976 6 PwmOut led4 (LED4);
Schueler 0:aa880864e976 7
Schueler 0:aa880864e976 8 Ticker step;
Schueler 0:aa880864e976 9
Schueler 0:aa880864e976 10 float delay_time = 0.001;
Schueler 0:aa880864e976 11 float increment = 0.002;
Schueler 0:aa880864e976 12
Schueler 0:aa880864e976 13 void LED_control() {
Schueler 0:aa880864e976 14 // ticker routine
Schueler 0:aa880864e976 15
Schueler 0:aa880864e976 16 // fading control led1
Schueler 0:aa880864e976 17 if ( ( led4 == 1 ) && ( led1 < 1 ) ) { led1 = led1 + increment; }
Schueler 0:aa880864e976 18 else if ( ( led2 == 1 ) && ( led1 > 0 ) ) { led1 = led1 - increment; }
Schueler 0:aa880864e976 19
Schueler 0:aa880864e976 20 // fading control led2
Schueler 0:aa880864e976 21 if ( ( led1 == 1 ) && ( led2 < 1 ) ) { led2 = led2 + increment; }
Schueler 0:aa880864e976 22 else if ( ( led3 == 1 ) && ( led2 > 0 ) ) { led2 = led2 - increment; }
Schueler 0:aa880864e976 23
Schueler 0:aa880864e976 24 // fading control led3
Schueler 0:aa880864e976 25 if ( ( led2 == 1 ) && ( led3 < 1 ) ) { led3 = led3 + increment; }
Schueler 0:aa880864e976 26 else if ( ( led4 == 1 ) && ( led3 > 0 ) ) { led3 = led3 - increment; }
Schueler 0:aa880864e976 27
Schueler 0:aa880864e976 28 // fading control led4
Schueler 0:aa880864e976 29 if ( ( led3 == 1 ) && ( led4 < 1 ) ) { led4 = led4 + increment; }
Schueler 0:aa880864e976 30 else if ( ( led1 == 1 ) && ( led4 > 0 ) ) { led4 = led4 - increment; }
Schueler 0:aa880864e976 31 }
Schueler 0:aa880864e976 32
Schueler 0:aa880864e976 33
Schueler 0:aa880864e976 34 int main() {
Schueler 0:aa880864e976 35 // initialize values
Schueler 0:aa880864e976 36 led1 = 1;
Schueler 0:aa880864e976 37 led2 = 0;
Schueler 0:aa880864e976 38 led3 = 0;
Schueler 0:aa880864e976 39 led4 = 0;
Schueler 0:aa880864e976 40
Schueler 0:aa880864e976 41 step.attach(&LED_control, delay_time);
Schueler 0:aa880864e976 42
Schueler 0:aa880864e976 43 while ( 1 ) // never ending story
Schueler 0:aa880864e976 44 {
Schueler 0:aa880864e976 45 //sleep();
Schueler 0:aa880864e976 46 }
Schueler 0:aa880864e976 47 }