Ver código fonte

Allow both encoder and ADC keypad (#13355)

7eggert 5 anos atrás
pai
commit
10c8c034bd

+ 2
- 1
Marlin/src/core/macros.h Ver arquivo

@@ -194,7 +194,8 @@
194 194
 #define DECREMENT_(n) DEC_ ##n
195 195
 #define DECREMENT(n) DECREMENT_(n)
196 196
 
197
-#define PIN_EXISTS(PN) (defined(PN ##_PIN) && PN ##_PIN >= 0)
197
+#define PIN_EXISTS(PN)    (defined(PN ##_PIN) && PN ##_PIN >= 0)
198
+#define BUTTON_EXISTS(BN) (defined(BTN_## BN) && BTN_## BN >= 0)
198 199
 
199 200
 #define MMM_TO_MMS(MM_M) ((MM_M)/60.0f)
200 201
 #define MMS_TO_MMM(MM_S) ((MM_S)*60.0f)

+ 0
- 6
Marlin/src/inc/Conditionals_LCD.h Ver arquivo

@@ -320,12 +320,6 @@
320 320
 #define HAS_LCD_MENU        (ENABLED(ULTIPANEL) && DISABLED(NO_LCD_MENUS))
321 321
 
322 322
 #define HAS_ADC_BUTTONS     ENABLED(ADC_KEYPAD)
323
-#define HAS_DIGITAL_BUTTONS (!HAS_ADC_BUTTONS && ENABLED(NEWPANEL))
324
-#define HAS_SHIFT_ENCODER   (!HAS_ADC_BUTTONS && (ENABLED(REPRAPWORLD_KEYPAD) || (HAS_SPI_LCD && DISABLED(NEWPANEL))))
325
-#define HAS_ENCODER_WHEEL   (!HAS_ADC_BUTTONS && ENABLED(NEWPANEL))
326
-
327
-// I2C buttons must be read in the main thread
328
-#define HAS_SLOW_BUTTONS (ENABLED(LCD_I2C_VIKI) || ENABLED(LCD_I2C_PANELOLU2))
329 323
 
330 324
 #if HAS_GRAPHICAL_LCD
331 325
   /**

+ 3
- 3
Marlin/src/lcd/ultralcd.cpp Ver arquivo

@@ -1073,15 +1073,15 @@ void MarlinUI::update() {
1073 1073
             | slow_buttons
1074 1074
           #endif
1075 1075
         ;
1076
-
1077 1076
       #elif HAS_ADC_BUTTONS
1078
-
1079 1077
         buttons = 0;
1078
+      #endif
1079
+
1080
+      #if HAS_ADC_BUTTONS
1080 1081
         if (keypad_buttons == 0) {
1081 1082
           const uint8_t b = get_ADC_keyValue();
1082 1083
           if (WITHIN(b, 1, 8)) keypad_buttons = _BV(b - 1);
1083 1084
         }
1084
-
1085 1085
       #endif
1086 1086
 
1087 1087
       #if HAS_SHIFT_ENCODER

+ 11
- 1
Marlin/src/lcd/ultralcd.h Ver arquivo

@@ -27,8 +27,19 @@
27 27
   #include "../libs/buzzer.h"
28 28
 #endif
29 29
 
30
+#define HAS_DIGITAL_BUTTONS (!HAS_ADC_BUTTONS && ENABLED(NEWPANEL)        \
31
+                            || (BUTTON_EXISTS(EN1) && BUTTON_EXISTS(EN2)) \
32
+                            || BUTTON_EXISTS(ENC) || BUTTON_EXISTS(BACK)  \
33
+                            || BUTTON_EXISTS(UP)  || BUTTON_EXISTS(DWN)   \
34
+                            || BUTTON_EXISTS(LFT) || BUTTON_EXISTS(RT))
35
+
36
+#define HAS_SHIFT_ENCODER   (!HAS_ADC_BUTTONS && (ENABLED(REPRAPWORLD_KEYPAD) || (HAS_SPI_LCD && DISABLED(NEWPANEL))))
37
+#define HAS_ENCODER_WHEEL  ((!HAS_ADC_BUTTONS && ENABLED(NEWPANEL)) || (BUTTON_EXISTS(EN1) && BUTTON_EXISTS(EN2)) )
30 38
 #define HAS_ENCODER_ACTION (HAS_LCD_MENU || ENABLED(ULTIPANEL_FEEDMULTIPLY))
31 39
 
40
+// I2C buttons must be read in the main thread
41
+#define HAS_SLOW_BUTTONS (ENABLED(LCD_I2C_VIKI) || ENABLED(LCD_I2C_PANELOLU2))
42
+
32 43
 #if HAS_SPI_LCD
33 44
 
34 45
   #include "../Marlin.h"
@@ -133,7 +144,6 @@
133 144
   #define EN_A _BV(BLEN_A)
134 145
   #define EN_B _BV(BLEN_B)
135 146
 
136
-  #define BUTTON_EXISTS(BN) (defined(BTN_## BN) && BTN_## BN >= 0)
137 147
   #define BUTTON_PRESSED(BN) !READ(BTN_## BN)
138 148
 
139 149
   #if BUTTON_EXISTS(ENC)

Carregando…
Cancelar
Salvar