Fading LEDs timer/interrupt and PWM based.

Dependencies:   mbed

main.cpp

Committer:
Schueler
Date:
2010-10-25
Revision:
0:aa880864e976

File content as of revision 0:aa880864e976:

#include "mbed.h"

PwmOut led1 (LED1);
PwmOut led2 (LED2);
PwmOut led3 (LED3);
PwmOut led4 (LED4);

Ticker step;

float delay_time = 0.001;
float increment = 0.002;

void LED_control() {
    // ticker routine

    // fading control led1
    if ( ( led4 == 1 ) && ( led1 < 1 ) ) { led1 = led1 + increment; }
    else if ( ( led2 == 1 ) && ( led1 > 0 ) ) { led1 = led1 - increment; }

    // fading control led2
    if ( ( led1 == 1 ) && ( led2 < 1 ) ) { led2 = led2 + increment; }
    else if ( ( led3 == 1 ) && ( led2 > 0 ) ) { led2 = led2 - increment; }

    // fading control led3
    if ( ( led2 == 1 ) && ( led3 < 1 ) ) { led3 = led3 + increment; }
    else if ( ( led4 == 1 ) && ( led3 > 0 ) ) { led3 = led3 - increment; }

    // fading control led4
    if ( ( led3 == 1 ) && ( led4 < 1 ) ) { led4 = led4 + increment; }
    else if ( ( led1 == 1 ) && ( led4 > 0 ) ) { led4 = led4 - increment; }
}


int main() {
    // initialize values
    led1 = 1;
    led2 = 0;
    led3 = 0;
    led4 = 0;

    step.attach(&LED_control, delay_time);

    while ( 1 ) // never ending story
    {    
        //sleep();
    }
}