Thomas Milburn
/
FBRDash-tom
can't push chnages :(
Fork of FBRDash by
src/LEDS.cpp@2:825f572902c6, 2012-06-25 (annotated)
- Committer:
- intrinseca
- Date:
- Mon Jun 25 21:20:22 2012 +0000
- Revision:
- 2:825f572902c6
- Parent:
- 1:b3907b8d9f65
- Child:
- 5:177520d43c87
Add comments
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
intrinseca | 1:b3907b8d9f65 | 1 | #include "mbed.h" |
intrinseca | 1:b3907b8d9f65 | 2 | #include "LEDS.h" |
intrinseca | 1:b3907b8d9f65 | 3 | |
intrinseca | 2:825f572902c6 | 4 | //Drive the rev LEDs |
intrinseca | 2:825f572902c6 | 5 | |
intrinseca | 2:825f572902c6 | 6 | //Initialise PWM pins |
intrinseca | 1:b3907b8d9f65 | 7 | LEDS::LEDS(PwmOut _pins[]) |
intrinseca | 1:b3907b8d9f65 | 8 | { |
intrinseca | 1:b3907b8d9f65 | 9 | pins = _pins; |
intrinseca | 1:b3907b8d9f65 | 10 | |
intrinseca | 1:b3907b8d9f65 | 11 | pins[0].period_us(100); |
intrinseca | 1:b3907b8d9f65 | 12 | } |
intrinseca | 1:b3907b8d9f65 | 13 | |
intrinseca | 2:825f572902c6 | 14 | //Calculate new PWM values |
intrinseca | 1:b3907b8d9f65 | 15 | void LEDS::refresh(float rpm) |
intrinseca | 1:b3907b8d9f65 | 16 | { |
intrinseca | 1:b3907b8d9f65 | 17 | int value; |
intrinseca | 1:b3907b8d9f65 | 18 | int remainder; |
intrinseca | 1:b3907b8d9f65 | 19 | int i; |
intrinseca | 1:b3907b8d9f65 | 20 | |
intrinseca | 2:825f572902c6 | 21 | //Number of fully-lit LEDs |
intrinseca | 1:b3907b8d9f65 | 22 | value = rpm / RESOLUTION; |
intrinseca | 1:b3907b8d9f65 | 23 | |
intrinseca | 1:b3907b8d9f65 | 24 | for(i = 0; i < NUM_LEDS; i++) |
intrinseca | 1:b3907b8d9f65 | 25 | { |
intrinseca | 1:b3907b8d9f65 | 26 | if(i < value) |
intrinseca | 2:825f572902c6 | 27 | { |
intrinseca | 2:825f572902c6 | 28 | //First LEDs on |
intrinseca | 1:b3907b8d9f65 | 29 | pins[i] = 1.0; |
intrinseca | 1:b3907b8d9f65 | 30 | } |
intrinseca | 1:b3907b8d9f65 | 31 | else if(i == value) |
intrinseca | 1:b3907b8d9f65 | 32 | { |
intrinseca | 2:825f572902c6 | 33 | //Last LED partially lit - calculate intensity and set. |
intrinseca | 1:b3907b8d9f65 | 34 | remainder = (int)rpm % RESOLUTION; |
intrinseca | 1:b3907b8d9f65 | 35 | pins[i] = (float)remainder / (float)RESOLUTION; |
intrinseca | 1:b3907b8d9f65 | 36 | } |
intrinseca | 1:b3907b8d9f65 | 37 | else |
intrinseca | 1:b3907b8d9f65 | 38 | { |
intrinseca | 2:825f572902c6 | 39 | //All others off |
intrinseca | 1:b3907b8d9f65 | 40 | pins[i] = 0.0; |
intrinseca | 1:b3907b8d9f65 | 41 | } |
intrinseca | 1:b3907b8d9f65 | 42 | } |
intrinseca | 1:b3907b8d9f65 | 43 | } |