瀏覽代碼

Revert ADC_KEYPAD direction behavior (#12508)

Scott Lahteine 6 年之前
父節點
當前提交
fd2998efd5
沒有連結到貢獻者的電子郵件帳戶。

+ 1
- 0
Marlin/src/inc/Conditionals_LCD.h 查看文件

@@ -47,6 +47,7 @@
47 47
   #define ULTIPANEL
48 48
 
49 49
   // this helps to implement ADC_KEYPAD menus
50
+  #define REVERSE_MENU_DIRECTION
50 51
   #define ENCODER_PULSES_PER_STEP 1
51 52
   #define ENCODER_STEPS_PER_MENU_ITEM 1
52 53
   #define ENCODER_FEEDRATE_DEADZONE 2

+ 1
- 0
Marlin/src/lcd/menu/menu_configuration.cpp 查看文件

@@ -55,6 +55,7 @@ static void lcd_factory_settings() {
55 55
   #include "../lcdprint.h"
56 56
 
57 57
   static void progress_bar_test() {
58
+    ui.encoder_direction_normal();
58 59
     static int8_t bar_percent = 0;
59 60
     if (ui.use_click()) {
60 61
       ui.goto_previous_screen();

+ 16
- 8
Marlin/src/lcd/ultralcd.cpp 查看文件

@@ -305,18 +305,26 @@ bool MarlinUI::get_blink() {
305 305
       if (keypad_buttons) {
306 306
         #if HAS_ENCODER_ACTION
307 307
           refresh(LCDVIEW_REDRAW_NOW);
308
-          if (encoderDirection == -1) { // side effect which signals we are inside a menu
309
-            #if HAS_LCD_MENU
310
-              if      (RRK(EN_KEYPAD_DOWN))   encoderPosition += ENCODER_STEPS_PER_MENU_ITEM;
311
-              else if (RRK(EN_KEYPAD_UP))     encoderPosition -= ENCODER_STEPS_PER_MENU_ITEM;
308
+          #if HAS_LCD_MENU
309
+            if (encoderDirection == -1) {     // ADC_KEYPAD forces REVERSE_MENU_DIRECTION, so this indicates menu navigation
310
+                   if (RRK(EN_KEYPAD_UP))     encoderPosition += ENCODER_STEPS_PER_MENU_ITEM;
311
+              else if (RRK(EN_KEYPAD_DOWN))   encoderPosition -= ENCODER_STEPS_PER_MENU_ITEM;
312 312
               else if (RRK(EN_KEYPAD_LEFT))   { MenuItem_back::action(); quick_feedback(); }
313 313
               else if (RRK(EN_KEYPAD_RIGHT))  { return_to_status(); quick_feedback(); }
314
+            }
315
+            else
316
+          #endif
317
+          {
318
+            #if HAS_LCD_MENU
319
+                   if (RRK(EN_KEYPAD_UP))     encoderPosition -= ENCODER_PULSES_PER_STEP;
320
+              else if (RRK(EN_KEYPAD_DOWN))   encoderPosition += ENCODER_PULSES_PER_STEP;
321
+              else if (RRK(EN_KEYPAD_LEFT))   { MenuItem_back::action(); quick_feedback(); }
322
+              else if (RRK(EN_KEYPAD_RIGHT))  encoderPosition = 0;
323
+            #else
324
+                   if (RRK(EN_KEYPAD_UP)   || RRK(EN_KEYPAD_LEFT))  encoderPosition -= ENCODER_PULSES_PER_STEP;
325
+              else if (RRK(EN_KEYPAD_DOWN) || RRK(EN_KEYPAD_RIGHT)) encoderPosition += ENCODER_PULSES_PER_STEP;
314 326
             #endif
315 327
           }
316
-          else if (RRK(EN_KEYPAD_DOWN))     encoderPosition -= ENCODER_PULSES_PER_STEP;
317
-          else if (RRK(EN_KEYPAD_UP))       encoderPosition += ENCODER_PULSES_PER_STEP;
318
-          else if (RRK(EN_KEYPAD_LEFT))     { MenuItem_back::action(); quick_feedback(); }
319
-          else if (RRK(EN_KEYPAD_RIGHT))    encoderPosition = 0;
320 328
         #endif
321 329
         next_button_update_ms = millis() + ADC_MIN_KEY_DELAY;
322 330
         return true;

+ 4
- 1
Marlin/src/lcd/ultralcd.h 查看文件

@@ -188,7 +188,10 @@
188 188
   #define B_DW (_BV(BL_DW))
189 189
   #define B_RI (_BV(BL_RI))
190 190
   #define B_ST (_BV(BL_ST))
191
-  #define BUTTON_CLICK() (buttons & (B_MI|B_ST))
191
+
192
+  #ifndef BUTTON_CLICK
193
+    #define BUTTON_CLICK() (buttons & (B_MI|B_ST))
194
+  #endif
192 195
 
193 196
 #endif
194 197
 

Loading…
取消
儲存