Matthias Reichstam
/
Interrups_TINF
Interrups_TINF
main.cpp@0:0a60892ea9de, 2018-11-15 (annotated)
- Committer:
- Reichi19
- Date:
- Thu Nov 15 17:12:51 2018 +0000
- Revision:
- 0:0a60892ea9de
Interrups
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Reichi19 | 0:0a60892ea9de | 1 | #include "mbed.h" |
Reichi19 | 0:0a60892ea9de | 2 | |
Reichi19 | 0:0a60892ea9de | 3 | #define UP 1 |
Reichi19 | 0:0a60892ea9de | 4 | #define DOWN 2 |
Reichi19 | 0:0a60892ea9de | 5 | #define STOP 0 |
Reichi19 | 0:0a60892ea9de | 6 | |
Reichi19 | 0:0a60892ea9de | 7 | InterruptIn iiCenter(p14); |
Reichi19 | 0:0a60892ea9de | 8 | InterruptIn iiDown(p12); |
Reichi19 | 0:0a60892ea9de | 9 | InterruptIn iiUp(p15); |
Reichi19 | 0:0a60892ea9de | 10 | InterruptIn iiLeft(p13); |
Reichi19 | 0:0a60892ea9de | 11 | InterruptIn iiRight(p16); |
Reichi19 | 0:0a60892ea9de | 12 | BusOut doLeds(LED1,LED2,LED3,LED4); |
Reichi19 | 0:0a60892ea9de | 13 | float delay = 0.5; |
Reichi19 | 0:0a60892ea9de | 14 | char countDown = STOP; |
Reichi19 | 0:0a60892ea9de | 15 | |
Reichi19 | 0:0a60892ea9de | 16 | void swOff() { |
Reichi19 | 0:0a60892ea9de | 17 | doLeds = 0; |
Reichi19 | 0:0a60892ea9de | 18 | countDown = STOP; |
Reichi19 | 0:0a60892ea9de | 19 | } |
Reichi19 | 0:0a60892ea9de | 20 | void slow() { |
Reichi19 | 0:0a60892ea9de | 21 | delay = 0.5; |
Reichi19 | 0:0a60892ea9de | 22 | } |
Reichi19 | 0:0a60892ea9de | 23 | void fast() { |
Reichi19 | 0:0a60892ea9de | 24 | delay = 0.25; |
Reichi19 | 0:0a60892ea9de | 25 | } |
Reichi19 | 0:0a60892ea9de | 26 | void cUp() { |
Reichi19 | 0:0a60892ea9de | 27 | countDown = UP; |
Reichi19 | 0:0a60892ea9de | 28 | } |
Reichi19 | 0:0a60892ea9de | 29 | void cDown() { |
Reichi19 | 0:0a60892ea9de | 30 | countDown = DOWN; |
Reichi19 | 0:0a60892ea9de | 31 | } |
Reichi19 | 0:0a60892ea9de | 32 | |
Reichi19 | 0:0a60892ea9de | 33 | int main() |
Reichi19 | 0:0a60892ea9de | 34 | { |
Reichi19 | 0:0a60892ea9de | 35 | doLeds = 0; |
Reichi19 | 0:0a60892ea9de | 36 | iiCenter.rise(&swOff); |
Reichi19 | 0:0a60892ea9de | 37 | iiLeft.rise(&slow); |
Reichi19 | 0:0a60892ea9de | 38 | iiRight.fall(&fast); |
Reichi19 | 0:0a60892ea9de | 39 | iiDown.rise(&cDown); |
Reichi19 | 0:0a60892ea9de | 40 | iiUp.rise(&cUp); |
Reichi19 | 0:0a60892ea9de | 41 | |
Reichi19 | 0:0a60892ea9de | 42 | while(1) { |
Reichi19 | 0:0a60892ea9de | 43 | if (countDown == DOWN) |
Reichi19 | 0:0a60892ea9de | 44 | doLeds = doLeds -1; |
Reichi19 | 0:0a60892ea9de | 45 | else if (countDown == UP) |
Reichi19 | 0:0a60892ea9de | 46 | doLeds = doLeds +1; |
Reichi19 | 0:0a60892ea9de | 47 | |
Reichi19 | 0:0a60892ea9de | 48 | wait(delay); |
Reichi19 | 0:0a60892ea9de | 49 | } |
Reichi19 | 0:0a60892ea9de | 50 | } |