diff --git a/lib/obp60task/OBP60Keypad.h b/lib/obp60task/OBP60Keypad.h index 7ad6f9b..9a69089 100644 --- a/lib/obp60task/OBP60Keypad.h +++ b/lib/obp60task/OBP60Keypad.h @@ -181,6 +181,29 @@ long starttime = 0; // Start time point for pressed key #endif #ifdef HARDWARE_LIGHT + int readSensorpads(){ + // Read key code + if(digitalRead(UP) == LOW){ + keycode = 10; // Left swipe + } + else if(digitalRead(DOWN) == LOW){ + keycode = 9; // Right swipe + } + else if(digitalRead(CONF) == LOW){ + keycode = 3; // Key 3 + } + else if(digitalRead(MENUE) == LOW){ + keycode = 1; // Key 1 + } + else if(digitalRead(EXIT) == LOW){ + keycode = 2; // Key 2 + } + else{ + keycode = 0; // No key activ + } + return keycode; + } + // Keypad functions for OBP60 clone (thSensitivity is inactiv) int readKeypad(uint thSensitivity) { pinMode(UP, INPUT); @@ -189,25 +212,8 @@ long starttime = 0; // Start time point for pressed key pinMode(MENUE, INPUT); pinMode(EXIT, INPUT); - // Read key code - if(digitalRead(UP) == LOW){ - keycode = 10; // Left swipe - } - else if(digitalRead(DOWN) == LOW){ - keycode = 9; // Right swipe - } - else if(digitalRead(CONF) == LOW){ - keycode = 3; // Key 3 - } - else if(digitalRead(MENUE) == LOW){ - keycode = 1; // Key 1 - } - else if(digitalRead(EXIT) == LOW){ - keycode = 2; // Key 2 - } - else{ - keycode = 0; // No key activ - } + // Read pad values + readSensorpads(); // Detect key if (keycode > 0 ){ @@ -220,6 +226,7 @@ long starttime = 0; // Start time point for pressed key keystatus = keycode; // Copy keycode keycodeold = keycode; + while(readSensorpads() > 0){} // Wait for pad release delay(keydelay); } } @@ -233,4 +240,4 @@ long starttime = 0; // Start time point for pressed key } #endif -#endif \ No newline at end of file +#endif