
Control the intensity of a single LED ( in series with 50 ohms) on PA_10
main.cpp@0:baf22868bfcf, 2015-03-19 (annotated)
- Committer:
- cdupaty
- Date:
- Thu Mar 19 10:05:36 2015 +0000
- Revision:
- 0:baf22868bfcf
A PWM LED light control
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cdupaty | 0:baf22868bfcf | 1 | #include "mbed.h" |
cdupaty | 0:baf22868bfcf | 2 | |
cdupaty | 0:baf22868bfcf | 3 | #define per 0.001 |
cdupaty | 0:baf22868bfcf | 4 | #define delta 0.0001 |
cdupaty | 0:baf22868bfcf | 5 | |
cdupaty | 0:baf22868bfcf | 6 | PwmOut ledpwm(PA_10); |
cdupaty | 0:baf22868bfcf | 7 | |
cdupaty | 0:baf22868bfcf | 8 | |
cdupaty | 0:baf22868bfcf | 9 | int main() { |
cdupaty | 0:baf22868bfcf | 10 | float w=0; |
cdupaty | 0:baf22868bfcf | 11 | int sens=0; |
cdupaty | 0:baf22868bfcf | 12 | ledpwm.period(per); |
cdupaty | 0:baf22868bfcf | 13 | ledpwm.pulsewidth(delta); |
cdupaty | 0:baf22868bfcf | 14 | while(1) { |
cdupaty | 0:baf22868bfcf | 15 | if (sens) { |
cdupaty | 0:baf22868bfcf | 16 | w+=delta; |
cdupaty | 0:baf22868bfcf | 17 | if (w>=per) sens=0; |
cdupaty | 0:baf22868bfcf | 18 | } |
cdupaty | 0:baf22868bfcf | 19 | else { |
cdupaty | 0:baf22868bfcf | 20 | w-=delta; |
cdupaty | 0:baf22868bfcf | 21 | if (w<=0) sens=1; |
cdupaty | 0:baf22868bfcf | 22 | } |
cdupaty | 0:baf22868bfcf | 23 | wait(0.04); |
cdupaty | 0:baf22868bfcf | 24 | ledpwm.pulsewidth(w); |
cdupaty | 0:baf22868bfcf | 25 | printf("pwm est de %.2f %%\n\r", ledpwm.read() * 100); |
cdupaty | 0:baf22868bfcf | 26 | } |
cdupaty | 0:baf22868bfcf | 27 | } |