Browse Source

Fix button process.

Vladimir N. Shilov 2 years ago
parent
commit
c6721944a4
2 changed files with 9 additions and 9 deletions
  1. 4 4
      inc/buttons.h
  2. 5 5
      src/buttons.c

+ 4 - 4
inc/buttons.h

@@ -4,10 +4,10 @@
 
 /* time constant in ms */
 #define BTN_SCAN_PERIOD     10
-#define BTN_SCAN_PAUSE      200
-#define BTN_TIME_PRESSED    30
-#define BTN_TIME_HOLDED     500
-#define BTN_TIME_REPEATED   50
+#define BTN_SCAN_PAUSE      (200/BTN_SCAN_PERIOD)
+#define BTN_TIME_PRESSED    (30/BTN_SCAN_PERIOD)
+#define BTN_TIME_HOLDED     (500/BTN_SCAN_PERIOD)
+#define BTN_TIME_REPEATED   (50/BTN_SCAN_PERIOD)
 
 /* type defs */
 typedef enum btn_num {

+ 5 - 5
src/buttons.c

@@ -48,24 +48,24 @@ static THD_FUNCTION(BTNThread, arg) {
         if (palReadLine(button_Lines[(button_num_t)i]) == BUTTON_PRESSED) {
         /* button pressed */
           button_Time[i] ++;
-          if (button_Time[i] >= (BTN_TIME_HOLDED/BTN_SCAN_PERIOD)) {
+          if (button_Time[i] >= BTN_TIME_HOLDED) {
             /* process long press */
-            button_Time[i] -= (BTN_TIME_REPEATED/BTN_SCAN_PERIOD);
+            button_Time[i] -= BTN_TIME_REPEATED;
             button_States[i] = BTN_st_Holded;
             btnh[i](BTN_st_Pressed); // autorepeat
           }
 
         } else if (button_Time[i] != 0) {
         /* button released */
-          if (button_Time[i] >= (BTN_TIME_PRESSED/BTN_SCAN_PERIOD)) {
+          if (button_Time[i] >= BTN_TIME_PRESSED) {
             /* process short press */
             button_States[i] = BTN_st_Pressed;
             btnh[i](BTN_st_Pressed);
           }
           button_Time[i] = 0;
           button_States[i] = BTN_st_Released;
-          pause = (BTN_SCAN_PAUSE/BTN_SCAN_PERIOD);
-          btnh[i](BTN_st_Pressed);
+          pause = BTN_SCAN_PAUSE;
+          //btnh[i](BTN_st_Released);
         }
       } /* end FOR */
     } /* end Pause check */