Thomas Milburn
/
FBRDash-tom
can't push chnages :(
Fork of FBRDash by
main.cpp@0:1f422ed56e0f, 2011-11-03 (annotated)
- Committer:
- intrinseca
- Date:
- Thu Nov 03 20:38:12 2011 +0000
- Revision:
- 0:1f422ed56e0f
- Child:
- 1:b3907b8d9f65
Test Program
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
intrinseca |
0:1f422ed56e0f | 1 | #include "mbed.h" |
intrinseca |
0:1f422ed56e0f | 2 | #include "TextLCD.h" |
intrinseca |
0:1f422ed56e0f | 3 | |
intrinseca |
0:1f422ed56e0f | 4 | #define NUM_LEDS 6 |
intrinseca |
0:1f422ed56e0f | 5 | PwmOut leds[] = { (p26), (p25), (p24), (p23), (p22), (p21) }; |
intrinseca |
0:1f422ed56e0f | 6 | |
intrinseca |
0:1f422ed56e0f | 7 | TextLCD lcd(p10, p11, p12, p17, p18, p19, p20); |
intrinseca |
0:1f422ed56e0f | 8 | |
intrinseca |
0:1f422ed56e0f | 9 | InterruptIn shiftDown(p5); |
intrinseca |
0:1f422ed56e0f | 10 | InterruptIn shiftUp(p6); |
intrinseca |
0:1f422ed56e0f | 11 | InterruptIn shiftNeutral(p7); |
intrinseca |
0:1f422ed56e0f | 12 | |
intrinseca |
0:1f422ed56e0f | 13 | volatile float increment = 0; |
intrinseca |
0:1f422ed56e0f | 14 | |
intrinseca |
0:1f422ed56e0f | 15 | void up() |
intrinseca |
0:1f422ed56e0f | 16 | { |
intrinseca |
0:1f422ed56e0f | 17 | increment += 0.01; |
intrinseca |
0:1f422ed56e0f | 18 | } |
intrinseca |
0:1f422ed56e0f | 19 | |
intrinseca |
0:1f422ed56e0f | 20 | void down() |
intrinseca |
0:1f422ed56e0f | 21 | { |
intrinseca |
0:1f422ed56e0f | 22 | increment -= 0.01; |
intrinseca |
0:1f422ed56e0f | 23 | } |
intrinseca |
0:1f422ed56e0f | 24 | |
intrinseca |
0:1f422ed56e0f | 25 | void neutral() |
intrinseca |
0:1f422ed56e0f | 26 | { |
intrinseca |
0:1f422ed56e0f | 27 | increment = 0; |
intrinseca |
0:1f422ed56e0f | 28 | } |
intrinseca |
0:1f422ed56e0f | 29 | |
intrinseca |
0:1f422ed56e0f | 30 | int main() { |
intrinseca |
0:1f422ed56e0f | 31 | float i; |
intrinseca |
0:1f422ed56e0f | 32 | |
intrinseca |
0:1f422ed56e0f | 33 | shiftUp.rise(&up); |
intrinseca |
0:1f422ed56e0f | 34 | shiftDown.rise(&down); |
intrinseca |
0:1f422ed56e0f | 35 | shiftNeutral.rise(&neutral); |
intrinseca |
0:1f422ed56e0f | 36 | |
intrinseca |
0:1f422ed56e0f | 37 | leds[0].period(0.0001); |
intrinseca |
0:1f422ed56e0f | 38 | |
intrinseca |
0:1f422ed56e0f | 39 | lcd.locate(0, 1); |
intrinseca |
0:1f422ed56e0f | 40 | lcd.printf("Neutral"); |
intrinseca |
0:1f422ed56e0f | 41 | |
intrinseca |
0:1f422ed56e0f | 42 | while(1) { |
intrinseca |
0:1f422ed56e0f | 43 | if(increment >= 0) |
intrinseca |
0:1f422ed56e0f | 44 | i = 0; |
intrinseca |
0:1f422ed56e0f | 45 | else |
intrinseca |
0:1f422ed56e0f | 46 | i = 6.0; |
intrinseca |
0:1f422ed56e0f | 47 | |
intrinseca |
0:1f422ed56e0f | 48 | for(; i <= 6 && i >= 0; i += increment) |
intrinseca |
0:1f422ed56e0f | 49 | { |
intrinseca |
0:1f422ed56e0f | 50 | for(int j = 0; j < NUM_LEDS; j++) |
intrinseca |
0:1f422ed56e0f | 51 | { |
intrinseca |
0:1f422ed56e0f | 52 | if(j < (int)i) |
intrinseca |
0:1f422ed56e0f | 53 | { |
intrinseca |
0:1f422ed56e0f | 54 | leds[j] = 1.0; |
intrinseca |
0:1f422ed56e0f | 55 | } |
intrinseca |
0:1f422ed56e0f | 56 | else if(j >= (int)i + 1) |
intrinseca |
0:1f422ed56e0f | 57 | { |
intrinseca |
0:1f422ed56e0f | 58 | leds[j] = 0; |
intrinseca |
0:1f422ed56e0f | 59 | } |
intrinseca |
0:1f422ed56e0f | 60 | else |
intrinseca |
0:1f422ed56e0f | 61 | { |
intrinseca |
0:1f422ed56e0f | 62 | leds[j] = i - ((int)i); |
intrinseca |
0:1f422ed56e0f | 63 | } |
intrinseca |
0:1f422ed56e0f | 64 | } |
intrinseca |
0:1f422ed56e0f | 65 | |
intrinseca |
0:1f422ed56e0f | 66 | lcd.locate(0, 0); |
intrinseca |
0:1f422ed56e0f | 67 | lcd.printf("%4.2f %4.2f", i, increment); |
intrinseca |
0:1f422ed56e0f | 68 | |
intrinseca |
0:1f422ed56e0f | 69 | lcd.locate(0, 1); |
intrinseca |
0:1f422ed56e0f | 70 | if(increment < 0) |
intrinseca |
0:1f422ed56e0f | 71 | lcd.printf("Down "); |
intrinseca |
0:1f422ed56e0f | 72 | else if(increment > 0) |
intrinseca |
0:1f422ed56e0f | 73 | lcd.printf("Up "); |
intrinseca |
0:1f422ed56e0f | 74 | else |
intrinseca |
0:1f422ed56e0f | 75 | lcd.printf("Neutral"); |
intrinseca |
0:1f422ed56e0f | 76 | |
intrinseca |
0:1f422ed56e0f | 77 | wait_ms(10); |
intrinseca |
0:1f422ed56e0f | 78 | } |
intrinseca |
0:1f422ed56e0f | 79 | } |
intrinseca |
0:1f422ed56e0f | 80 | } |