Ben Gordon
/
ELEC351_GroupA_alternate
temp
Button.cpp@0:2a4af0cb6e8d, 2018-12-06 (annotated)
- Committer:
- BenRJG
- Date:
- Thu Dec 06 15:38:09 2018 +0000
- Revision:
- 0:2a4af0cb6e8d
Imported Code from Kiel; Added button functionality; Added set DateTime Functionality
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
BenRJG | 0:2a4af0cb6e8d | 1 | #include "Button.hpp" |
BenRJG | 0:2a4af0cb6e8d | 2 | |
BenRJG | 0:2a4af0cb6e8d | 3 | BYTE BUTTON::poll(void) |
BenRJG | 0:2a4af0cb6e8d | 4 | { |
BenRJG | 0:2a4af0cb6e8d | 5 | switch(state) |
BenRJG | 0:2a4af0cb6e8d | 6 | { |
BenRJG | 0:2a4af0cb6e8d | 7 | case FALLEN : |
BenRJG | 0:2a4af0cb6e8d | 8 | OUTPUT = 0; |
BenRJG | 0:2a4af0cb6e8d | 9 | if(IN != 0){ |
BenRJG | 0:2a4af0cb6e8d | 10 | OUTPUT = 1; |
BenRJG | 0:2a4af0cb6e8d | 11 | state = RISING; |
BenRJG | 0:2a4af0cb6e8d | 12 | timer.reset(); |
BenRJG | 0:2a4af0cb6e8d | 13 | timer.start(); |
BenRJG | 0:2a4af0cb6e8d | 14 | } |
BenRJG | 0:2a4af0cb6e8d | 15 | break; |
BenRJG | 0:2a4af0cb6e8d | 16 | |
BenRJG | 0:2a4af0cb6e8d | 17 | case RISING : |
BenRJG | 0:2a4af0cb6e8d | 18 | OUTPUT = 0; |
BenRJG | 0:2a4af0cb6e8d | 19 | if(timer.read_ms() > 100){ |
BenRJG | 0:2a4af0cb6e8d | 20 | timer.stop(); |
BenRJG | 0:2a4af0cb6e8d | 21 | state = RISEN; |
BenRJG | 0:2a4af0cb6e8d | 22 | } |
BenRJG | 0:2a4af0cb6e8d | 23 | break; |
BenRJG | 0:2a4af0cb6e8d | 24 | |
BenRJG | 0:2a4af0cb6e8d | 25 | case RISEN : |
BenRJG | 0:2a4af0cb6e8d | 26 | OUTPUT = 0; |
BenRJG | 0:2a4af0cb6e8d | 27 | if(IN != 0){ |
BenRJG | 0:2a4af0cb6e8d | 28 | OUTPUT = 2; |
BenRJG | 0:2a4af0cb6e8d | 29 | state = FALLING; |
BenRJG | 0:2a4af0cb6e8d | 30 | timer.reset(); |
BenRJG | 0:2a4af0cb6e8d | 31 | timer.start(); |
BenRJG | 0:2a4af0cb6e8d | 32 | } |
BenRJG | 0:2a4af0cb6e8d | 33 | break; |
BenRJG | 0:2a4af0cb6e8d | 34 | |
BenRJG | 0:2a4af0cb6e8d | 35 | case FALLING : |
BenRJG | 0:2a4af0cb6e8d | 36 | OUTPUT = 0; |
BenRJG | 0:2a4af0cb6e8d | 37 | if(timer.read_ms() > 100){ |
BenRJG | 0:2a4af0cb6e8d | 38 | timer.stop(); |
BenRJG | 0:2a4af0cb6e8d | 39 | state = FALLEN; |
BenRJG | 0:2a4af0cb6e8d | 40 | } |
BenRJG | 0:2a4af0cb6e8d | 41 | break; |
BenRJG | 0:2a4af0cb6e8d | 42 | } |
BenRJG | 0:2a4af0cb6e8d | 43 | |
BenRJG | 0:2a4af0cb6e8d | 44 | return OUTPUT; |
BenRJG | 0:2a4af0cb6e8d | 45 | } |
BenRJG | 0:2a4af0cb6e8d | 46 | |
BenRJG | 0:2a4af0cb6e8d | 47 | BYTE BUTTON::rise(void) |
BenRJG | 0:2a4af0cb6e8d | 48 | { |
BenRJG | 0:2a4af0cb6e8d | 49 | switch(state) |
BenRJG | 0:2a4af0cb6e8d | 50 | { |
BenRJG | 0:2a4af0cb6e8d | 51 | case FALLEN : |
BenRJG | 0:2a4af0cb6e8d | 52 | OUTPUT = 0; |
BenRJG | 0:2a4af0cb6e8d | 53 | if(IN != 0){ |
BenRJG | 0:2a4af0cb6e8d | 54 | OUTPUT = 1; |
BenRJG | 0:2a4af0cb6e8d | 55 | state = RISING; |
BenRJG | 0:2a4af0cb6e8d | 56 | timer.reset(); |
BenRJG | 0:2a4af0cb6e8d | 57 | timer.start(); |
BenRJG | 0:2a4af0cb6e8d | 58 | } |
BenRJG | 0:2a4af0cb6e8d | 59 | break; |
BenRJG | 0:2a4af0cb6e8d | 60 | |
BenRJG | 0:2a4af0cb6e8d | 61 | case RISING : |
BenRJG | 0:2a4af0cb6e8d | 62 | OUTPUT = 0; |
BenRJG | 0:2a4af0cb6e8d | 63 | if(timer.read_ms() > 100){ |
BenRJG | 0:2a4af0cb6e8d | 64 | timer.stop(); |
BenRJG | 0:2a4af0cb6e8d | 65 | state = FALLEN; |
BenRJG | 0:2a4af0cb6e8d | 66 | } |
BenRJG | 0:2a4af0cb6e8d | 67 | break; |
BenRJG | 0:2a4af0cb6e8d | 68 | } |
BenRJG | 0:2a4af0cb6e8d | 69 | |
BenRJG | 0:2a4af0cb6e8d | 70 | return OUTPUT; |
BenRJG | 0:2a4af0cb6e8d | 71 | } |
BenRJG | 0:2a4af0cb6e8d | 72 | |
BenRJG | 0:2a4af0cb6e8d | 73 | /*BYTE BUTTON::fall(void) |
BenRJG | 0:2a4af0cb6e8d | 74 | { |
BenRJG | 0:2a4af0cb6e8d | 75 | |
BenRJG | 0:2a4af0cb6e8d | 76 | return OUTPUT; |
BenRJG | 0:2a4af0cb6e8d | 77 | }*/ |