Browse Source

Revert ADC_KEYPAD direction behavior (#12508)

pull/1/head
Scott Lahteine 6 years ago
committed by GitHub
parent
commit
fd2998efd5
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      Marlin/src/inc/Conditionals_LCD.h
  2. 1
      Marlin/src/lcd/menu/menu_configuration.cpp
  3. 24
      Marlin/src/lcd/ultralcd.cpp
  4. 5
      Marlin/src/lcd/ultralcd.h

1
Marlin/src/inc/Conditionals_LCD.h

@ -47,6 +47,7 @@
#define ULTIPANEL #define ULTIPANEL
// this helps to implement ADC_KEYPAD menus // this helps to implement ADC_KEYPAD menus
#define REVERSE_MENU_DIRECTION
#define ENCODER_PULSES_PER_STEP 1 #define ENCODER_PULSES_PER_STEP 1
#define ENCODER_STEPS_PER_MENU_ITEM 1 #define ENCODER_STEPS_PER_MENU_ITEM 1
#define ENCODER_FEEDRATE_DEADZONE 2 #define ENCODER_FEEDRATE_DEADZONE 2

1
Marlin/src/lcd/menu/menu_configuration.cpp

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

24
Marlin/src/lcd/ultralcd.cpp

@ -305,18 +305,26 @@ bool MarlinUI::get_blink() {
if (keypad_buttons) { if (keypad_buttons) {
#if HAS_ENCODER_ACTION #if HAS_ENCODER_ACTION
refresh(LCDVIEW_REDRAW_NOW); refresh(LCDVIEW_REDRAW_NOW);
if (encoderDirection == -1) { // side effect which signals we are inside a menu #if HAS_LCD_MENU
#if HAS_LCD_MENU if (encoderDirection == -1) { // ADC_KEYPAD forces REVERSE_MENU_DIRECTION, so this indicates menu navigation
if (RRK(EN_KEYPAD_DOWN)) encoderPosition += ENCODER_STEPS_PER_MENU_ITEM; if (RRK(EN_KEYPAD_UP)) encoderPosition += ENCODER_STEPS_PER_MENU_ITEM;
else if (RRK(EN_KEYPAD_UP)) encoderPosition -= ENCODER_STEPS_PER_MENU_ITEM; else if (RRK(EN_KEYPAD_DOWN)) encoderPosition -= ENCODER_STEPS_PER_MENU_ITEM;
else if (RRK(EN_KEYPAD_LEFT)) { MenuItem_back::action(); quick_feedback(); } else if (RRK(EN_KEYPAD_LEFT)) { MenuItem_back::action(); quick_feedback(); }
else if (RRK(EN_KEYPAD_RIGHT)) { return_to_status(); quick_feedback(); } else if (RRK(EN_KEYPAD_RIGHT)) { return_to_status(); quick_feedback(); }
}
else
#endif
{
#if HAS_LCD_MENU
if (RRK(EN_KEYPAD_UP)) encoderPosition -= ENCODER_PULSES_PER_STEP;
else if (RRK(EN_KEYPAD_DOWN)) encoderPosition += ENCODER_PULSES_PER_STEP;
else if (RRK(EN_KEYPAD_LEFT)) { MenuItem_back::action(); quick_feedback(); }
else if (RRK(EN_KEYPAD_RIGHT)) encoderPosition = 0;
#else
if (RRK(EN_KEYPAD_UP) || RRK(EN_KEYPAD_LEFT)) encoderPosition -= ENCODER_PULSES_PER_STEP;
else if (RRK(EN_KEYPAD_DOWN) || RRK(EN_KEYPAD_RIGHT)) encoderPosition += ENCODER_PULSES_PER_STEP;
#endif #endif
} }
else if (RRK(EN_KEYPAD_DOWN)) encoderPosition -= ENCODER_PULSES_PER_STEP;
else if (RRK(EN_KEYPAD_UP)) encoderPosition += ENCODER_PULSES_PER_STEP;
else if (RRK(EN_KEYPAD_LEFT)) { MenuItem_back::action(); quick_feedback(); }
else if (RRK(EN_KEYPAD_RIGHT)) encoderPosition = 0;
#endif #endif
next_button_update_ms = millis() + ADC_MIN_KEY_DELAY; next_button_update_ms = millis() + ADC_MIN_KEY_DELAY;
return true; return true;

5
Marlin/src/lcd/ultralcd.h

@ -188,7 +188,10 @@
#define B_DW (_BV(BL_DW)) #define B_DW (_BV(BL_DW))
#define B_RI (_BV(BL_RI)) #define B_RI (_BV(BL_RI))
#define B_ST (_BV(BL_ST)) #define B_ST (_BV(BL_ST))
#define BUTTON_CLICK() (buttons & (B_MI|B_ST))
#ifndef BUTTON_CLICK
#define BUTTON_CLICK() (buttons & (B_MI|B_ST))
#endif
#endif #endif

Loading…
Cancel
Save