Browse Source

И опять доработка кнопок...

Vladimir N. Shilov 6 năm trước cách đây
mục cha
commit
206324549e
3 tập tin đã thay đổi với 9 bổ sung18 xóa
  1. 2 2
      inc/main.h
  2. 0 12
      src/event-system.c
  3. 7 4
      src/main.c

+ 2 - 2
inc/main.h

@@ -41,9 +41,9 @@
 #define BUTTON_PERIOD      10
 /* in ms */
 #define BTN_SCAN_PERIOD    10
-#define BTN_TIME_PAUSE     50
+#define BTN_TIME_PAUSE     20
 /* все временные константы кнопок кратны периоду опроса кнопок - 10 ms. */
-#define BTN_TIME_PRESSED   5
+#define BTN_TIME_PRESSED   3
 #define BTN_TIME_HOLDED    50
 #define BTN_TIME_REPEATED  10
 

+ 0 - 12
src/event-system.c

@@ -65,31 +65,19 @@ const table_state_t stateTable[] PROGMEM = {
   {stSetMM, evBTN1Holded, stShowTime, setTimeEnd, showTime},
 
   {stSetHH, evBTN3Pressed, stNoChange, setHHInc, setTimeShow},
-  {stSetHH, evBTN3Holded,  stNoChange, setHHInc, setTimeShow},
   {stSetHH, evBTN2Pressed, stNoChange, setHHDec, setTimeShow},
-  {stSetHH, evBTN2Holded,  stNoChange, setHHDec, setTimeShow},
 
   {stSetMM, evBTN3Pressed, stNoChange, setMMInc, setTimeShow},
-  {stSetMM, evBTN3Holded,  stNoChange, setMMInc, setTimeShow},
   {stSetMM, evBTN2Pressed, stNoChange, setMMDec, setTimeShow},
-  {stSetMM, evBTN2Holded,  stNoChange, setMMDec, setTimeShow},
   /* edit calendar */
   {stShowWDay, evBTN3Pressed, stNoChange, incWDay,  showWDay},
-  {stShowWDay, evBTN3Holded,  stNoChange, incWDay,  showWDay},
   {stShowMDay, evBTN3Pressed, stNoChange, incMDay,  showMDay},
-  {stShowMDay, evBTN3Holded,  stNoChange, incMDay,  showMDay},
   {stShowMon,  evBTN3Pressed, stNoChange, incMonth, showMonth},
-  {stShowMon,  evBTN3Holded,  stNoChange, incMonth, showMonth},
   {stShowYear, evBTN3Pressed, stNoChange, incYear,  showYear},
-  {stShowYear, evBTN3Holded,  stNoChange, incYear,  showYear},
   {stShowWDay, evBTN2Pressed, stNoChange, decWDay,  showWDay},
-  {stShowWDay, evBTN2Holded,  stNoChange, decWDay,  showWDay},
   {stShowMDay, evBTN2Pressed, stNoChange, decMDay,  showMDay},
-  {stShowMDay, evBTN2Holded,  stNoChange, decMDay,  showMDay},
   {stShowMon,  evBTN2Pressed, stNoChange, decMonth, showMonth},
-  {stShowMon,  evBTN2Holded,  stNoChange, decMonth, showMonth},
   {stShowYear, evBTN2Pressed, stNoChange, decYear,  showYear},
-  {stShowYear, evBTN2Holded,  stNoChange, decYear,  showYear},
   /* обязательная пустая строка таблицы */
   {stNoChange, eventNull, stNoChange, EmptyFunc, EmptyFunc}
 };

+ 7 - 4
src/main.c

@@ -38,8 +38,8 @@ static volatile struct {
 } Flag;
 static btn_t Button[BTN_NUM] = {
   {0, evBTN1Pressed, evBTN1Holded, BUTTON1_PIN},
-  {0, evBTN2Pressed, evBTN2Holded, BUTTON2_PIN},
-  {0, evBTN3Pressed, evBTN3Holded, BUTTON3_PIN}
+  {0, evBTN2Pressed, evBTN2Pressed, BUTTON2_PIN},
+  {0, evBTN3Pressed, evBTN2Pressed, BUTTON3_PIN}
 };
 static volatile uint8_t DISP_WDT = 0;
 
@@ -180,7 +180,10 @@ static void btnProcess(void) {
         Button[i].time ++;
         if (Button[i].time > BTN_TIME_HOLDED) {
           Button[i].time -= BTN_TIME_REPEATED;
-          ES_PlaceEvent(Button[i].pressed); // button pressed auto repeat
+          if (Button[i].holded == Button[i].pressed) {
+            // if pressed and holded - same function, then button pressed auto repeat
+            ES_PlaceEvent(Button[i].pressed);
+          }
         }
       } else {
         // button released
@@ -373,7 +376,7 @@ void setMMDec(void) {
 }
 
 void setTimeEnd(void) {
-  RTOS_SetTask(btnProcess, 2000, BTN_SCAN_PERIOD);
+  RTOS_SetTask(btnProcess, 500, BTN_SCAN_PERIOD);
 
   setRTC.Sec = 0;
   RTC_WriteTime(&setRTC);