mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2024-12-18 08:17:18 +00:00
Merge pull request #4803 from thinkyhead/rc_lcd_button_fix
Clear LCD button state, apply timer to all
This commit is contained in:
commit
e40646de42
@ -2361,6 +2361,7 @@ void kill_screen(const char* lcd_msg) {
|
|||||||
|
|
||||||
void lcd_quick_feedback() {
|
void lcd_quick_feedback() {
|
||||||
lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW;
|
lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW;
|
||||||
|
buttons = 0;
|
||||||
next_button_update_ms = millis() + 500;
|
next_button_update_ms = millis() + 500;
|
||||||
|
|
||||||
// Buzz and wait. The delay is needed for buttons to settle!
|
// Buzz and wait. The delay is needed for buttons to settle!
|
||||||
@ -2850,20 +2851,26 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
|
|||||||
* Warning: This function is called from interrupt context!
|
* Warning: This function is called from interrupt context!
|
||||||
*/
|
*/
|
||||||
void lcd_buttons_update() {
|
void lcd_buttons_update() {
|
||||||
|
millis_t now = millis();
|
||||||
|
if (ELAPSED(now, next_button_update_ms)) {
|
||||||
|
|
||||||
#if ENABLED(NEWPANEL)
|
#if ENABLED(NEWPANEL)
|
||||||
uint8_t newbutton = 0;
|
uint8_t newbutton = 0;
|
||||||
|
|
||||||
#if BUTTON_EXISTS(EN1)
|
#if BUTTON_EXISTS(EN1)
|
||||||
if (BUTTON_PRESSED(EN1)) newbutton |= EN_A;
|
if (BUTTON_PRESSED(EN1)) newbutton |= EN_A;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if BUTTON_EXISTS(EN2)
|
#if BUTTON_EXISTS(EN2)
|
||||||
if (BUTTON_PRESSED(EN2)) newbutton |= EN_B;
|
if (BUTTON_PRESSED(EN2)) newbutton |= EN_B;
|
||||||
#endif
|
#endif
|
||||||
#if LCD_HAS_DIRECTIONAL_BUTTONS || BUTTON_EXISTS(ENC)
|
|
||||||
millis_t now = millis();
|
#if BUTTON_EXISTS(ENC)
|
||||||
|
if (BUTTON_PRESSED(ENC)) newbutton |= EN_C;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if LCD_HAS_DIRECTIONAL_BUTTONS
|
#if LCD_HAS_DIRECTIONAL_BUTTONS
|
||||||
if (ELAPSED(now, next_button_update_ms)) {
|
|
||||||
if (false) {
|
if (false) {
|
||||||
// for the else-ifs below
|
// for the else-ifs below
|
||||||
}
|
}
|
||||||
@ -2891,12 +2898,8 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
|
|||||||
next_button_update_ms = now + 300;
|
next_button_update_ms = now + 300;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if BUTTON_EXISTS(ENC)
|
#endif // LCD_HAS_DIRECTIONAL_BUTTONS
|
||||||
if (ELAPSED(now, next_button_update_ms) && BUTTON_PRESSED(ENC)) newbutton |= EN_C;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
buttons = newbutton;
|
buttons = newbutton;
|
||||||
#if ENABLED(LCD_HAS_SLOW_BUTTONS)
|
#if ENABLED(LCD_HAS_SLOW_BUTTONS)
|
||||||
@ -2909,6 +2912,8 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
|
|||||||
GET_BUTTON_STATES(buttons);
|
GET_BUTTON_STATES(buttons);
|
||||||
#endif //!NEWPANEL
|
#endif //!NEWPANEL
|
||||||
|
|
||||||
|
} // next_button_update_ms
|
||||||
|
|
||||||
// Manage encoder rotation
|
// Manage encoder rotation
|
||||||
#if ENABLED(REVERSE_MENU_DIRECTION) && ENABLED(REVERSE_ENCODER_DIRECTION)
|
#if ENABLED(REVERSE_MENU_DIRECTION) && ENABLED(REVERSE_ENCODER_DIRECTION)
|
||||||
#define ENCODER_DIFF_CW (encoderDiff -= encoderDirection)
|
#define ENCODER_DIFF_CW (encoderDiff -= encoderDirection)
|
||||||
|
Loading…
Reference in New Issue
Block a user