|
|
- class Keyboard{
- private:
-
- byte goTo;
- byte goBack;
- byte plus;
- byte minus;
- byte debounceTime;
-
- Screen *screen;
-
- public:
-
- //Keyboard constructor
- Keyboard(byte goTo, byte goBack, byte plus, byte minus, byte debounceTime, Screen * screen){
- this->goTo = goTo;
- this->goBack = goBack;
- this->plus = plus;
- this->minus = minus;
- this->debounceTime = debounceTime;
-
- this->screen = screen;
-
- pinMode(goTo, INPUT_PULLUP);
- pinMode(goBack, INPUT_PULLUP);
- pinMode(plus, INPUT_PULLUP);
- pinMode(minus, INPUT_PULLUP);
- }
- //Debouncing functions
- void checkGoTo(){
- static char cont;
- if(digitalRead(this->goTo) == LOW)
- cont++;
- else
- cont = 0;
- if(cont == debounceTime/REFRESH){
- this->screen->goTo();
- }
- }
-
- void checkGoBack(){
- static char cont;
- if(digitalRead(this->goBack) == LOW){
- cont++;
- }
- else
- cont = 0;
- if(cont == debounceTime/REFRESH){
- this->screen->goBack();
- }
- }
-
- void checkPlus(){
- static char cont;
- if(digitalRead(this->plus) == LOW)
- cont++;
- else
- cont = 0;
- if(cont == debounceTime/REFRESH){
- this->screen->plusAction();
- }
- }
-
- void checkMinus(){
- static char cont;
- if(digitalRead(this->minus) == LOW)
- cont++;
- else
- cont = 0;
- if(cont == debounceTime/REFRESH){
- this->screen->minusAction();
- }
- }
-
- // All buttons are checked with this method
- void control(){
- this->checkGoTo();
- this->checkGoBack();
- this->checkPlus();
- this->checkMinus();
- }
- };
|