Ben Gordon
/
ELEC351_GroupA_alternate
temp
Diff: Button.cpp
- Revision:
- 0:2a4af0cb6e8d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Button.cpp Thu Dec 06 15:38:09 2018 +0000 @@ -0,0 +1,77 @@ +#include "Button.hpp" + +BYTE BUTTON::poll(void) +{ + switch(state) + { + case FALLEN : + OUTPUT = 0; + if(IN != 0){ + OUTPUT = 1; + state = RISING; + timer.reset(); + timer.start(); + } + break; + + case RISING : + OUTPUT = 0; + if(timer.read_ms() > 100){ + timer.stop(); + state = RISEN; + } + break; + + case RISEN : + OUTPUT = 0; + if(IN != 0){ + OUTPUT = 2; + state = FALLING; + timer.reset(); + timer.start(); + } + break; + + case FALLING : + OUTPUT = 0; + if(timer.read_ms() > 100){ + timer.stop(); + state = FALLEN; + } + break; + } + + return OUTPUT; +} + +BYTE BUTTON::rise(void) +{ + switch(state) + { + case FALLEN : + OUTPUT = 0; + if(IN != 0){ + OUTPUT = 1; + state = RISING; + timer.reset(); + timer.start(); + } + break; + + case RISING : + OUTPUT = 0; + if(timer.read_ms() > 100){ + timer.stop(); + state = FALLEN; + } + break; + } + + return OUTPUT; +} + +/*BYTE BUTTON::fall(void) +{ + + return OUTPUT; +}*/