diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 229e23e92d..4256878935 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -88,6 +88,7 @@ static void menu_action_setting_edit_callback_long5(const char* pstr, unsigned l #if !defined(LCD_I2C_VIKI) #define ENCODER_STEPS_PER_MENU_ITEM 5 + #define ENCODER_PULSES_PER_STEP 1 #else #define ENCODER_STEPS_PER_MENU_ITEM 2 // VIKI LCD rotary encoder uses a different number of steps per rotation #endif @@ -984,10 +985,10 @@ void lcd_update() reprapworld_keypad_move_home(); } #endif - if (encoderDiff) + if (abs(encoderDiff) >= ENCODER_PULSES_PER_STEP) { lcdDrawUpdate = 1; - encoderPosition += encoderDiff; + encoderPosition += encoderDiff / ENCODER_PULSES_PER_STEP; encoderDiff = 0; timeoutToStatus = millis() + LCD_TIMEOUT_TO_STATUS; }