Ben Schueler
/
PWM_LED_Sequence
Fading LEDs timer/interrupt and PWM based.
main.cpp@0:aa880864e976, 2010-10-25 (annotated)
- Committer:
- Schueler
- Date:
- Mon Oct 25 16:50:33 2010 +0000
- Revision:
- 0:aa880864e976
1.0
Who changed what in which revision?
User | Revision | Line number | New 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 | } |