|
@@ -235,38 +235,10 @@ bool MarlinUI::get_blink() {
|
235
|
235
|
////////////////////////////////////////////
|
236
|
236
|
|
237
|
237
|
#if ENABLED(REPRAPWORLD_KEYPAD)
|
238
|
|
- volatile uint8_t buttons_reprapworld_keypad;
|
239
|
|
-#endif
|
240
|
238
|
|
241
|
|
-#if ENABLED(ADC_KEYPAD)
|
|
239
|
+ volatile uint8_t MarlinUI::buttons_reprapworld_keypad;
|
242
|
240
|
|
243
|
|
- inline bool handle_adc_keypad() {
|
244
|
|
- #define ADC_MIN_KEY_DELAY 100
|
245
|
|
- if (buttons_reprapworld_keypad) {
|
246
|
|
- #if HAS_ENCODER_ACTION
|
247
|
|
- ui.refresh(LCDVIEW_REDRAW_NOW);
|
248
|
|
- if (encoderDirection == -1) { // side effect which signals we are inside a menu
|
249
|
|
- #if HAS_LCD_MENU
|
250
|
|
- if (RRK(EN_REPRAPWORLD_KEYPAD_DOWN)) encoderPosition -= ENCODER_STEPS_PER_MENU_ITEM;
|
251
|
|
- else if (RRK(EN_REPRAPWORLD_KEYPAD_UP)) encoderPosition += ENCODER_STEPS_PER_MENU_ITEM;
|
252
|
|
- else if (RRK(EN_REPRAPWORLD_KEYPAD_LEFT)) { menu_item_back::action(); ui.quick_feedback(); }
|
253
|
|
- else if (RRK(EN_REPRAPWORLD_KEYPAD_RIGHT)) { ui.return_to_status(); ui.quick_feedback(); }
|
254
|
|
- #endif
|
255
|
|
- }
|
256
|
|
- else if (RRK(EN_REPRAPWORLD_KEYPAD_DOWN)) encoderPosition += ENCODER_PULSES_PER_STEP;
|
257
|
|
- else if (RRK(EN_REPRAPWORLD_KEYPAD_UP)) encoderPosition -= ENCODER_PULSES_PER_STEP;
|
258
|
|
- else if (RRK(EN_REPRAPWORLD_KEYPAD_RIGHT)) encoderPosition = 0;
|
259
|
|
- #endif
|
260
|
|
- next_button_update_ms = millis() + ADC_MIN_KEY_DELAY;
|
261
|
|
- return true;
|
262
|
|
- }
|
263
|
|
-
|
264
|
|
- return false;
|
265
|
|
- }
|
266
|
|
-
|
267
|
|
-#elif ENABLED(REPRAPWORLD_KEYPAD)
|
268
|
|
-
|
269
|
|
- #if HAS_LCD_MENU
|
|
241
|
+ #if DISABLED(ADC_KEYPAD) && HAS_LCD_MENU
|
270
|
242
|
|
271
|
243
|
void lcd_move_x();
|
272
|
244
|
void lcd_move_y();
|
|
@@ -285,45 +257,74 @@ bool MarlinUI::get_blink() {
|
285
|
257
|
|
286
|
258
|
#endif
|
287
|
259
|
|
288
|
|
- inline void handle_reprapworld_keypad() {
|
|
260
|
+ bool MarlinUI::handle_keypad() {
|
289
|
261
|
|
290
|
|
- static uint8_t keypad_debounce = 0;
|
|
262
|
+ #if ENABLED(ADC_KEYPAD)
|
291
|
263
|
|
292
|
|
- if (!RRK( EN_REPRAPWORLD_KEYPAD_F1 | EN_REPRAPWORLD_KEYPAD_F2
|
293
|
|
- | EN_REPRAPWORLD_KEYPAD_F3 | EN_REPRAPWORLD_KEYPAD_DOWN
|
294
|
|
- | EN_REPRAPWORLD_KEYPAD_RIGHT | EN_REPRAPWORLD_KEYPAD_MIDDLE
|
295
|
|
- | EN_REPRAPWORLD_KEYPAD_UP | EN_REPRAPWORLD_KEYPAD_LEFT )
|
296
|
|
- ) {
|
297
|
|
- if (keypad_debounce > 0) keypad_debounce--;
|
298
|
|
- }
|
299
|
|
- else if (!keypad_debounce) {
|
300
|
|
- keypad_debounce = 2;
|
|
264
|
+ #define ADC_MIN_KEY_DELAY 100
|
|
265
|
+ if (buttons_reprapworld_keypad) {
|
|
266
|
+ #if HAS_ENCODER_ACTION
|
|
267
|
+ refresh(LCDVIEW_REDRAW_NOW);
|
|
268
|
+ if (encoderDirection == -1) { // side effect which signals we are inside a menu
|
|
269
|
+ #if HAS_LCD_MENU
|
|
270
|
+ if (RRK(EN_REPRAPWORLD_KEYPAD_DOWN)) encoderPosition -= ENCODER_STEPS_PER_MENU_ITEM;
|
|
271
|
+ else if (RRK(EN_REPRAPWORLD_KEYPAD_UP)) encoderPosition += ENCODER_STEPS_PER_MENU_ITEM;
|
|
272
|
+ else if (RRK(EN_REPRAPWORLD_KEYPAD_LEFT)) { menu_item_back::action(); quick_feedback(); }
|
|
273
|
+ else if (RRK(EN_REPRAPWORLD_KEYPAD_RIGHT)) { return_to_status(); quick_feedback(); }
|
|
274
|
+ #endif
|
|
275
|
+ }
|
|
276
|
+ else if (RRK(EN_REPRAPWORLD_KEYPAD_DOWN)) encoderPosition += ENCODER_PULSES_PER_STEP;
|
|
277
|
+ else if (RRK(EN_REPRAPWORLD_KEYPAD_UP)) encoderPosition -= ENCODER_PULSES_PER_STEP;
|
|
278
|
+ else if (RRK(EN_REPRAPWORLD_KEYPAD_RIGHT)) encoderPosition = 0;
|
|
279
|
+ #endif
|
|
280
|
+ next_button_update_ms = millis() + ADC_MIN_KEY_DELAY;
|
|
281
|
+ return true;
|
|
282
|
+ }
|
301
|
283
|
|
302
|
|
- const bool homed = all_axes_homed();
|
|
284
|
+ #else // !ADC_KEYPAD
|
303
|
285
|
|
304
|
|
- #if HAS_LCD_MENU
|
|
286
|
+ static uint8_t keypad_debounce = 0;
|
305
|
287
|
|
306
|
|
- if (RRK(EN_REPRAPWORLD_KEYPAD_MIDDLE)) ui.goto_screen(menu_move);
|
|
288
|
+ if (!RRK( EN_REPRAPWORLD_KEYPAD_F1 | EN_REPRAPWORLD_KEYPAD_F2
|
|
289
|
+ | EN_REPRAPWORLD_KEYPAD_F3 | EN_REPRAPWORLD_KEYPAD_DOWN
|
|
290
|
+ | EN_REPRAPWORLD_KEYPAD_RIGHT | EN_REPRAPWORLD_KEYPAD_MIDDLE
|
|
291
|
+ | EN_REPRAPWORLD_KEYPAD_UP | EN_REPRAPWORLD_KEYPAD_LEFT )
|
|
292
|
+ ) {
|
|
293
|
+ if (keypad_debounce > 0) keypad_debounce--;
|
|
294
|
+ }
|
|
295
|
+ else if (!keypad_debounce) {
|
|
296
|
+ keypad_debounce = 2;
|
307
|
297
|
|
308
|
|
- #if DISABLED(DELTA) && Z_HOME_DIR == -1
|
309
|
|
- if (RRK(EN_REPRAPWORLD_KEYPAD_F2)) _reprapworld_keypad_move(Z_AXIS, 1);
|
310
|
|
- #endif
|
|
298
|
+ const bool homed = all_axes_homed();
|
|
299
|
+
|
|
300
|
+ #if HAS_LCD_MENU
|
311
|
301
|
|
312
|
|
- if (homed) {
|
313
|
|
- #if ENABLED(DELTA) || Z_HOME_DIR != -1
|
314
|
|
- if (RRK(EN_REPRAPWORLD_KEYPAD_F2)) _reprapworld_keypad_move(Z_AXIS, 1);
|
|
302
|
+ if (RRK(EN_REPRAPWORLD_KEYPAD_MIDDLE)) goto_screen(menu_move);
|
|
303
|
+
|
|
304
|
+ #if DISABLED(DELTA) && Z_HOME_DIR == -1
|
|
305
|
+ if (RRK(EN_REPRAPWORLD_KEYPAD_F2)) _reprapworld_keypad_move(Z_AXIS, 1);
|
315
|
306
|
#endif
|
316
|
|
- if (RRK(EN_REPRAPWORLD_KEYPAD_F3)) _reprapworld_keypad_move(Z_AXIS, -1);
|
317
|
|
- if (RRK(EN_REPRAPWORLD_KEYPAD_LEFT)) _reprapworld_keypad_move(X_AXIS, -1);
|
318
|
|
- if (RRK(EN_REPRAPWORLD_KEYPAD_RIGHT)) _reprapworld_keypad_move(X_AXIS, 1);
|
319
|
|
- if (RRK(EN_REPRAPWORLD_KEYPAD_DOWN)) _reprapworld_keypad_move(Y_AXIS, 1);
|
320
|
|
- if (RRK(EN_REPRAPWORLD_KEYPAD_UP)) _reprapworld_keypad_move(Y_AXIS, -1);
|
321
|
|
- }
|
322
|
307
|
|
323
|
|
- #endif // HAS_LCD_MENU
|
|
308
|
+ if (homed) {
|
|
309
|
+ #if ENABLED(DELTA) || Z_HOME_DIR != -1
|
|
310
|
+ if (RRK(EN_REPRAPWORLD_KEYPAD_F2)) _reprapworld_keypad_move(Z_AXIS, 1);
|
|
311
|
+ #endif
|
|
312
|
+ if (RRK(EN_REPRAPWORLD_KEYPAD_F3)) _reprapworld_keypad_move(Z_AXIS, -1);
|
|
313
|
+ if (RRK(EN_REPRAPWORLD_KEYPAD_LEFT)) _reprapworld_keypad_move(X_AXIS, -1);
|
|
314
|
+ if (RRK(EN_REPRAPWORLD_KEYPAD_RIGHT)) _reprapworld_keypad_move(X_AXIS, 1);
|
|
315
|
+ if (RRK(EN_REPRAPWORLD_KEYPAD_DOWN)) _reprapworld_keypad_move(Y_AXIS, 1);
|
|
316
|
+ if (RRK(EN_REPRAPWORLD_KEYPAD_UP)) _reprapworld_keypad_move(Y_AXIS, -1);
|
|
317
|
+ }
|
324
|
318
|
|
325
|
|
- if (!homed && RRK(EN_REPRAPWORLD_KEYPAD_F1)) enqueue_and_echo_commands_P(PSTR("G28"));
|
326
|
|
- }
|
|
319
|
+ #endif // HAS_LCD_MENU
|
|
320
|
+
|
|
321
|
+ if (!homed && RRK(EN_REPRAPWORLD_KEYPAD_F1)) enqueue_and_echo_commands_P(PSTR("G28"));
|
|
322
|
+ return true;
|
|
323
|
+ }
|
|
324
|
+
|
|
325
|
+ #endif // !ADC_KEYPAD
|
|
326
|
+
|
|
327
|
+ return false;
|
327
|
328
|
}
|
328
|
329
|
|
329
|
330
|
#endif // REPRAPWORLD_KEYPAD
|
|
@@ -684,18 +685,19 @@ void MarlinUI::update() {
|
684
|
685
|
slow_buttons = read_slow_buttons(); // Buttons that take too long to read in interrupt context
|
685
|
686
|
#endif
|
686
|
687
|
|
687
|
|
- #if ENABLED(ADC_KEYPAD)
|
|
688
|
+ #if ENABLED(REPRAPWORLD_KEYPAD)
|
688
|
689
|
|
689
|
|
- if (handle_adc_keypad()) {
|
|
690
|
+ if (
|
|
691
|
+ #if ENABLED(ADC_KEYPAD)
|
|
692
|
+ handle_keypad()
|
|
693
|
+ #else
|
|
694
|
+ handle_keypad()
|
|
695
|
+ #endif
|
|
696
|
+ ) {
|
690
|
697
|
#if HAS_LCD_MENU && LCD_TIMEOUT_TO_STATUS
|
691
|
698
|
return_to_status_ms = ms + LCD_TIMEOUT_TO_STATUS;
|
692
|
699
|
#endif
|
693
|
700
|
}
|
694
|
|
-
|
695
|
|
- #elif ENABLED(REPRAPWORLD_KEYPAD)
|
696
|
|
-
|
697
|
|
- handle_reprapworld_keypad();
|
698
|
|
-
|
699
|
701
|
#endif
|
700
|
702
|
|
701
|
703
|
const float abs_diff = ABS(encoderDiff);
|
|
@@ -990,25 +992,26 @@ void MarlinUI::update() {
|
990
|
992
|
|
991
|
993
|
#endif // LCD_HAS_DIRECTIONAL_BUTTONS
|
992
|
994
|
|
993
|
|
- buttons = newbutton
|
994
|
|
- #if ENABLED(LCD_HAS_SLOW_BUTTONS)
|
995
|
|
- | slow_buttons
|
996
|
|
- #endif
|
997
|
|
- ;
|
998
|
|
-
|
999
|
995
|
#if ENABLED(ADC_KEYPAD)
|
1000
|
996
|
|
1001
|
|
- uint8_t newbutton_reprapworld_keypad = 0;
|
1002
|
997
|
buttons = 0;
|
1003
|
998
|
if (buttons_reprapworld_keypad == 0) {
|
1004
|
|
- newbutton_reprapworld_keypad = get_ADC_keyValue();
|
|
999
|
+ uint8_t newbutton_reprapworld_keypad = get_ADC_keyValue();
|
1005
|
1000
|
if (WITHIN(newbutton_reprapworld_keypad, 1, 8))
|
1006
|
1001
|
buttons_reprapworld_keypad = _BV(newbutton_reprapworld_keypad - 1);
|
1007
|
1002
|
}
|
1008
|
1003
|
|
1009
|
|
- #elif ENABLED(REPRAPWORLD_KEYPAD)
|
|
1004
|
+ #else
|
1010
|
1005
|
|
1011
|
|
- GET_SHIFT_BUTTON_STATES(buttons_reprapworld_keypad);
|
|
1006
|
+ buttons = newbutton
|
|
1007
|
+ #if ENABLED(LCD_HAS_SLOW_BUTTONS)
|
|
1008
|
+ | slow_buttons
|
|
1009
|
+ #endif
|
|
1010
|
+ ;
|
|
1011
|
+
|
|
1012
|
+ #if ENABLED(REPRAPWORLD_KEYPAD)
|
|
1013
|
+ GET_SHIFT_BUTTON_STATES(buttons_reprapworld_keypad);
|
|
1014
|
+ #endif
|
1012
|
1015
|
|
1013
|
1016
|
#endif
|
1014
|
1017
|
|