Browse Source

Fix keypad-related compile error (#12306)

Ludy 6 years ago
parent
commit
5ba6607181

+ 1
- 1
Marlin/src/gcode/feature/trinamic/M906.cpp View File

@@ -39,7 +39,7 @@ void GcodeSuite::M906() {
39 39
   bool report = true;
40 40
 
41 41
   #if AXIS_IS_TMC(X) || AXIS_IS_TMC(X2) || AXIS_IS_TMC(Y) || AXIS_IS_TMC(Y2) || AXIS_IS_TMC(Z) || AXIS_IS_TMC(Z2) || AXIS_IS_TMC(Z3)
42
-    const uint8_t index = parser.byteval('I'); 
42
+    const uint8_t index = parser.byteval('I');
43 43
   #endif
44 44
 
45 45
   LOOP_XYZE(i) if (uint16_t value = parser.intval(axis_codes[i])) {

+ 1
- 1
Marlin/src/inc/Conditionals_LCD.h View File

@@ -44,9 +44,9 @@
44 44
 
45 45
 #elif ENABLED(ZONESTAR_LCD)
46 46
 
47
+  #define ADC_KEYPAD
47 48
   #define REPRAPWORLD_KEYPAD
48 49
   #define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0
49
-  #define ADC_KEYPAD
50 50
   #define ADC_KEY_NUM 8
51 51
   #define ULTIPANEL
52 52
 

+ 30
- 92
Marlin/src/lcd/ultralcd.cpp View File

@@ -224,26 +224,6 @@ bool lcd_blink() {
224 224
   volatile uint8_t buttons_reprapworld_keypad;
225 225
 #endif
226 226
 
227
-#if ENABLED(REPRAPWORLD_KEYPAD) || ENABLED(ADC_KEYPAD)
228
-  #define REPRAPWORLD_BTN_OFFSET         0 // bit offset into buttons for shift register values
229
-
230
-  #define BLEN_REPRAPWORLD_KEYPAD_F3     0
231
-  #define BLEN_REPRAPWORLD_KEYPAD_F2     1
232
-  #define BLEN_REPRAPWORLD_KEYPAD_F1     2
233
-
234
-  #define BLEN_REPRAPWORLD_KEYPAD_DOWN   3
235
-  #define BLEN_REPRAPWORLD_KEYPAD_RIGHT  4
236
-  #define BLEN_REPRAPWORLD_KEYPAD_MIDDLE 5
237
-  #define BLEN_REPRAPWORLD_KEYPAD_UP     6
238
-  #define BLEN_REPRAPWORLD_KEYPAD_LEFT   7
239
-  #define EN_REPRAPWORLD_KEYPAD_DOWN     (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_DOWN))
240
-  #define EN_REPRAPWORLD_KEYPAD_RIGHT    (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_RIGHT))
241
-  #define EN_REPRAPWORLD_KEYPAD_MIDDLE   (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_MIDDLE))
242
-  #define EN_REPRAPWORLD_KEYPAD_UP       (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_UP))
243
-  #define EN_REPRAPWORLD_KEYPAD_LEFT     (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_LEFT))
244
-  
245
-#endif // REPRAPWORLD_KEYPAD || ADC_KEYPAD
246
-
247 227
 #if ENABLED(ADC_KEYPAD)
248 228
 
249 229
   inline bool handle_adc_keypad() {
@@ -251,22 +231,15 @@ bool lcd_blink() {
251 231
     if (buttons_reprapworld_keypad) {
252 232
       lcdDrawUpdate = LCDVIEW_REDRAW_NOW;
253 233
       if (encoderDirection == -1) { // side effect which signals we are inside a menu
254
-        if      (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_DOWN)  encoderPosition -= ENCODER_STEPS_PER_MENU_ITEM;
255
-        else if (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_UP)    encoderPosition += ENCODER_STEPS_PER_MENU_ITEM;
256
-        else if (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_LEFT)  { menu_action_back(); lcd_quick_feedback(true); }
257
-        else if (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_RIGHT) { lcd_return_to_status(); lcd_quick_feedback(true); }
234
+        if      (RRK(EN_REPRAPWORLD_KEYPAD_DOWN))   encoderPosition -= ENCODER_STEPS_PER_MENU_ITEM;
235
+        else if (RRK(EN_REPRAPWORLD_KEYPAD_UP))     encoderPosition += ENCODER_STEPS_PER_MENU_ITEM;
236
+        else if (RRK(EN_REPRAPWORLD_KEYPAD_LEFT))   { menu_action_back();     lcd_quick_feedback(true); }
237
+        else if (RRK(EN_REPRAPWORLD_KEYPAD_RIGHT))  { lcd_return_to_status(); lcd_quick_feedback(true); }
258 238
       }
259
-      else {
260
-        if (buttons_reprapworld_keypad & (EN_REPRAPWORLD_KEYPAD_DOWN|EN_REPRAPWORLD_KEYPAD_UP|EN_REPRAPWORLD_KEYPAD_RIGHT)) {
261
-               if (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_DOWN)  encoderPosition += ENCODER_PULSES_PER_STEP;
262
-          else if (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_UP)    encoderPosition -= ENCODER_PULSES_PER_STEP;
263
-          else if (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_RIGHT) encoderPosition = 0;
264
-        }
265
-      }
266
-      #if ENABLED(ADC_KEYPAD_DEBUG)
267
-        SERIAL_PROTOCOLLNPAIR("buttons_reprapworld_keypad = ", (uint32_t)buttons_reprapworld_keypad);
268
-        SERIAL_PROTOCOLLNPAIR("encoderPosition = ", (uint32_t)encoderPosition);
269
-      #endif
239
+      else if (RRK(EN_REPRAPWORLD_KEYPAD_DOWN))     encoderPosition += ENCODER_PULSES_PER_STEP;
240
+      else if (RRK(EN_REPRAPWORLD_KEYPAD_UP))       encoderPosition -= ENCODER_PULSES_PER_STEP;
241
+      else if (RRK(EN_REPRAPWORLD_KEYPAD_RIGHT))    encoderPosition = 0;
242
+
270 243
       next_button_update_ms = millis() + ADC_MIN_KEY_DELAY;
271 244
       return true;
272 245
     }
@@ -276,34 +249,6 @@ bool lcd_blink() {
276 249
 
277 250
 #elif ENABLED(REPRAPWORLD_KEYPAD)
278 251
 
279
-  #define KEYPAD_HOME EN_REPRAPWORLD_KEYPAD_F1
280
-  #define KEYPAD_EN_C EN_REPRAPWORLD_KEYPAD_MIDDLE
281
-
282
-  #define EN_REPRAPWORLD_KEYPAD_F1        (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_F1))
283
-  #define EN_REPRAPWORLD_KEYPAD_F2        (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_F2))
284
-  #define EN_REPRAPWORLD_KEYPAD_F3        (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_F3))
285
-  
286
-  #define REPRAPWORLD_KEYPAD_MOVE_Z_UP    (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_F2)
287
-  #define REPRAPWORLD_KEYPAD_MOVE_Z_DOWN  (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_F3)
288
-  #define REPRAPWORLD_KEYPAD_MOVE_Y_DOWN  (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_DOWN)
289
-  #define REPRAPWORLD_KEYPAD_MOVE_X_RIGHT (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_RIGHT)
290
-  #define REPRAPWORLD_KEYPAD_MOVE_Y_UP    (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_UP)
291
-  #define REPRAPWORLD_KEYPAD_MOVE_X_LEFT  (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_LEFT)
292
-
293
-  #define REPRAPWORLD_KEYPAD_MOVE_HOME    (buttons_reprapworld_keypad & KEYPAD_HOME)
294
-  #define REPRAPWORLD_KEYPAD_MOVE_MENU    (buttons_reprapworld_keypad & KEYPAD_EN_C)
295
-
296
-  #define REPRAPWORLD_KEYPAD_PRESSED      (buttons_reprapworld_keypad & ( \
297
-                                            EN_REPRAPWORLD_KEYPAD_F1 | \
298
-                                            EN_REPRAPWORLD_KEYPAD_F2 | \
299
-                                            EN_REPRAPWORLD_KEYPAD_F3 | \
300
-                                            EN_REPRAPWORLD_KEYPAD_DOWN | \
301
-                                            EN_REPRAPWORLD_KEYPAD_RIGHT | \
302
-                                            EN_REPRAPWORLD_KEYPAD_MIDDLE | \
303
-                                            EN_REPRAPWORLD_KEYPAD_UP | \
304
-                                            EN_REPRAPWORLD_KEYPAD_LEFT) \
305
-                                          )
306
-
307 252
   void lcd_move_x();
308 253
   void lcd_move_y();
309 254
   void lcd_move_z();
@@ -318,42 +263,38 @@ bool lcd_blink() {
318 263
       default: break;
319 264
     }
320 265
   }
321
-  inline void reprapworld_keypad_move_z_up()    { _reprapworld_keypad_move(Z_AXIS,  1); }
322
-  inline void reprapworld_keypad_move_z_down()  { _reprapworld_keypad_move(Z_AXIS, -1); }
323
-  inline void reprapworld_keypad_move_x_left()  { _reprapworld_keypad_move(X_AXIS, -1); }
324
-  inline void reprapworld_keypad_move_x_right() { _reprapworld_keypad_move(X_AXIS,  1); }
325
-  inline void reprapworld_keypad_move_y_up()    { _reprapworld_keypad_move(Y_AXIS, -1); }
326
-  inline void reprapworld_keypad_move_y_down()  { _reprapworld_keypad_move(Y_AXIS,  1); }
327
-  inline void reprapworld_keypad_move_home()    { enqueue_and_echo_commands_P(PSTR("G28")); } // move all axes home and wait
328
-  inline void reprapworld_keypad_move_menu()    { lcd_goto_screen(menu_move); }
329 266
 
330 267
   inline void handle_reprapworld_keypad() {
331 268
 
332 269
     static uint8_t keypad_debounce = 0;
333 270
 
334
-    if (!REPRAPWORLD_KEYPAD_PRESSED) {
271
+    if (!RRK( EN_REPRAPWORLD_KEYPAD_F1    | EN_REPRAPWORLD_KEYPAD_F2
272
+            | EN_REPRAPWORLD_KEYPAD_F3    | EN_REPRAPWORLD_KEYPAD_DOWN
273
+            | EN_REPRAPWORLD_KEYPAD_RIGHT | EN_REPRAPWORLD_KEYPAD_MIDDLE
274
+            | EN_REPRAPWORLD_KEYPAD_UP    | EN_REPRAPWORLD_KEYPAD_LEFT )
275
+    ) {
335 276
       if (keypad_debounce > 0) keypad_debounce--;
336 277
     }
337 278
     else if (!keypad_debounce) {
338 279
       keypad_debounce = 2;
339 280
 
340
-      if (REPRAPWORLD_KEYPAD_MOVE_MENU)       reprapworld_keypad_move_menu();
281
+      if (RRK(EN_REPRAPWORLD_KEYPAD_MIDDLE))  lcd_goto_screen(menu_move);
341 282
 
342 283
       #if DISABLED(DELTA) && Z_HOME_DIR == -1
343
-        if (REPRAPWORLD_KEYPAD_MOVE_Z_UP)     reprapworld_keypad_move_z_up();
284
+        if (RRK(EN_REPRAPWORLD_KEYPAD_F2))    _reprapworld_keypad_move(Z_AXIS,  1);
344 285
       #endif
345 286
 
346 287
       if (all_axes_homed()) {
347 288
         #if ENABLED(DELTA) || Z_HOME_DIR != -1
348
-          if (REPRAPWORLD_KEYPAD_MOVE_Z_UP)   reprapworld_keypad_move_z_up();
289
+          if (RRK(EN_REPRAPWORLD_KEYPAD_F2))  _reprapworld_keypad_move(Z_AXIS,  1);
349 290
         #endif
350
-        if (REPRAPWORLD_KEYPAD_MOVE_Z_DOWN)   reprapworld_keypad_move_z_down();
351
-        if (REPRAPWORLD_KEYPAD_MOVE_X_LEFT)   reprapworld_keypad_move_x_left();
352
-        if (REPRAPWORLD_KEYPAD_MOVE_X_RIGHT)  reprapworld_keypad_move_x_right();
353
-        if (REPRAPWORLD_KEYPAD_MOVE_Y_DOWN)   reprapworld_keypad_move_y_down();
354
-        if (REPRAPWORLD_KEYPAD_MOVE_Y_UP)     reprapworld_keypad_move_y_up();
291
+        if (RRK(EN_REPRAPWORLD_KEYPAD_F3))    _reprapworld_keypad_move(Z_AXIS, -1);
292
+        if (RRK(EN_REPRAPWORLD_KEYPAD_LEFT))  _reprapworld_keypad_move(X_AXIS, -1);
293
+        if (RRK(EN_REPRAPWORLD_KEYPAD_RIGHT)) _reprapworld_keypad_move(X_AXIS,  1);
294
+        if (RRK(EN_REPRAPWORLD_KEYPAD_DOWN))  _reprapworld_keypad_move(Y_AXIS,  1);
295
+        if (RRK(EN_REPRAPWORLD_KEYPAD_UP))    _reprapworld_keypad_move(Y_AXIS, -1);
355 296
       }
356
-      else if (REPRAPWORLD_KEYPAD_MOVE_HOME)  reprapworld_keypad_move_home();
297
+      else if (RRK(EN_REPRAPWORLD_KEYPAD_F1)) enqueue_and_echo_commands_P(PSTR("G28"));
357 298
     }
358 299
   }
359 300
 
@@ -1038,22 +979,19 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
1038 979
 
1039 980
   static const _stADCKeypadTable_ stADCKeyTable[] PROGMEM = {
1040 981
     // VALUE_MIN, VALUE_MAX, KEY
1041
-    { 4000, 4096, BLEN_REPRAPWORLD_KEYPAD_F1 + 1 },     // F1
1042
-    { 4000, 4096, BLEN_REPRAPWORLD_KEYPAD_F2 + 1 },     // F2
1043
-    { 4000, 4096, BLEN_REPRAPWORLD_KEYPAD_F3 + 1 },     // F3
1044
-    {  300,  500, BLEN_REPRAPWORLD_KEYPAD_LEFT + 1 },   // LEFT
1045
-    { 1900, 2200, BLEN_REPRAPWORLD_KEYPAD_RIGHT + 1 },  // RIGHT
1046
-    {  570,  870, BLEN_REPRAPWORLD_KEYPAD_UP + 1 },     // UP
1047
-    { 2670, 2870, BLEN_REPRAPWORLD_KEYPAD_DOWN + 1 },   // DOWN
1048
-    { 1150, 1450, BLEN_REPRAPWORLD_KEYPAD_MIDDLE + 1 }, // ENTER
982
+    { 4000, 4096, 1 + BLEN_REPRAPWORLD_KEYPAD_F1     }, // F1
983
+    { 4000, 4096, 1 + BLEN_REPRAPWORLD_KEYPAD_F2     }, // F2
984
+    { 4000, 4096, 1 + BLEN_REPRAPWORLD_KEYPAD_F3     }, // F3
985
+    {  300,  500, 1 + BLEN_REPRAPWORLD_KEYPAD_LEFT   }, // LEFT
986
+    { 1900, 2200, 1 + BLEN_REPRAPWORLD_KEYPAD_RIGHT  }, // RIGHT
987
+    {  570,  870, 1 + BLEN_REPRAPWORLD_KEYPAD_UP     }, // UP
988
+    { 2670, 2870, 1 + BLEN_REPRAPWORLD_KEYPAD_DOWN   }, // DOWN
989
+    { 1150, 1450, 1 + BLEN_REPRAPWORLD_KEYPAD_MIDDLE }, // ENTER
1049 990
   };
1050 991
 
1051 992
   uint8_t get_ADC_keyValue(void) {
1052 993
     if (thermalManager.ADCKey_count >= 16) {
1053 994
       const uint16_t currentkpADCValue = thermalManager.current_ADCKey_raw >> 2;
1054
-      #if ENABLED(ADC_KEYPAD_DEBUG)
1055
-        SERIAL_PROTOCOLLN(currentkpADCValue);
1056
-      #endif
1057 995
       thermalManager.current_ADCKey_raw = 0;
1058 996
       thermalManager.ADCKey_count = 0;
1059 997
       if (currentkpADCValue < 4000)

+ 33
- 6
Marlin/src/lcd/ultralcd.h View File

@@ -408,15 +408,42 @@
408 408
 #endif
409 409
 
410 410
 #if ENABLED(REPRAPWORLD_KEYPAD)
411
+  #define REPRAPWORLD_BTN_OFFSET          0 // Bit offset into buttons for shift register values
412
+
413
+  #define BLEN_REPRAPWORLD_KEYPAD_F3      0
414
+  #define BLEN_REPRAPWORLD_KEYPAD_F2      1
415
+  #define BLEN_REPRAPWORLD_KEYPAD_F1      2
416
+  #define BLEN_REPRAPWORLD_KEYPAD_DOWN    3
417
+  #define BLEN_REPRAPWORLD_KEYPAD_RIGHT   4
418
+  #define BLEN_REPRAPWORLD_KEYPAD_MIDDLE  5
419
+  #define BLEN_REPRAPWORLD_KEYPAD_UP      6
420
+  #define BLEN_REPRAPWORLD_KEYPAD_LEFT    7
421
+
422
+  #define EN_REPRAPWORLD_KEYPAD_F1        (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_F1))
423
+  #define EN_REPRAPWORLD_KEYPAD_F2        (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_F2))
424
+  #define EN_REPRAPWORLD_KEYPAD_F3        (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_F3))
425
+  #define EN_REPRAPWORLD_KEYPAD_DOWN      (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_DOWN))
426
+  #define EN_REPRAPWORLD_KEYPAD_RIGHT     (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_RIGHT))
427
+  #define EN_REPRAPWORLD_KEYPAD_MIDDLE    (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_MIDDLE))
428
+  #define EN_REPRAPWORLD_KEYPAD_UP        (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_UP))
429
+  #define EN_REPRAPWORLD_KEYPAD_LEFT      (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_LEFT))
430
+
431
+  #define RRK(B) (buttons_reprapworld_keypad & (B))
432
+
411 433
   #ifdef EN_C
412
-    #define LCD_CLICKED() ((buttons & EN_C) || REPRAPWORLD_KEYPAD_MOVE_MENU)
434
+    #define LCD_CLICKED() ((buttons & EN_C) || RRK(EN_REPRAPWORLD_KEYPAD_MIDDLE))
413 435
   #else
414
-    #define LCD_CLICKED() REPRAPWORLD_KEYPAD_MOVE_MENU
436
+    #define LCD_CLICKED() RRK(EN_REPRAPWORLD_KEYPAD_MIDDLE)
437
+  #endif
438
+
439
+#endif // REPRAPWORLD_KEYPAD
440
+
441
+#ifndef LCD_CLICKED
442
+  #ifdef EN_C
443
+    #define LCD_CLICKED() (buttons & EN_C)
444
+  #else
445
+    #define LCD_CLICKED() false
415 446
   #endif
416
-#elif defined(EN_C)
417
-  #define LCD_CLICKED() (buttons & EN_C)
418
-#else
419
-  #define LCD_CLICKED() false
420 447
 #endif
421 448
 
422 449
 extern uint8_t lcd_status_update_delay;

+ 1
- 0
Marlin/src/module/temperature.cpp View File

@@ -1831,6 +1831,7 @@ void Temperature::isr() {
1831 1831
   static uint8_t pwm_count = _BV(SOFT_PWM_SCALE);
1832 1832
   // avoid multiple loads of pwm_count
1833 1833
   uint8_t pwm_count_tmp = pwm_count;
1834
+
1834 1835
   #if ENABLED(ADC_KEYPAD)
1835 1836
     static unsigned int raw_ADCKey_value = 0;
1836 1837
   #endif

Loading…
Cancel
Save