From 1af98519cdbb5bcb65321ff9378beb45b133d96a Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 21 May 2018 20:32:16 -0500 Subject: [PATCH] Group and adjust LCD buttons code --- Marlin/src/lcd/ultralcd.h | 64 +++++++++++++----------- Marlin/src/lcd/ultralcd_common_HD44780.h | 16 +++--- 2 files changed, 43 insertions(+), 37 deletions(-) diff --git a/Marlin/src/lcd/ultralcd.h b/Marlin/src/lcd/ultralcd.h index b4b1ba44a3..d9a059c279 100644 --- a/Marlin/src/lcd/ultralcd.h +++ b/Marlin/src/lcd/ultralcd.h @@ -45,7 +45,6 @@ #include "../feature/pause.h" #endif - bool lcd_hasstatus(); void lcd_setstatus(const char* message, const bool persist=false); void lcd_setstatusPGM(const char* message, const int8_t level=0); @@ -90,7 +89,7 @@ #define BUTTON_EXISTS(BN) (defined(BTN_## BN) && BTN_## BN >= 0) #define BUTTON_PRESSED(BN) !READ(BTN_## BN) - #if ENABLED(ULTIPANEL) + #if ENABLED(ULTIPANEL) // LCD with a click-wheel input extern bool defer_return_to_status; @@ -114,27 +113,6 @@ void lcd_goto_screen(screenFunc_t screen, const uint32_t encoder=0); - // Encoder click is directly connected - - #define BLEN_A 0 - #define BLEN_B 1 - - #define EN_A (_BV(BLEN_A)) - #define EN_B (_BV(BLEN_B)) - - #if BUTTON_EXISTS(ENC) - #define BLEN_C 2 - #define EN_C (_BV(BLEN_C)) - #endif - - #if BUTTON_EXISTS(BACK) - #define BLEN_D 3 - #define EN_D _BV(BLEN_D) - #define LCD_BACK_CLICKED (buttons & EN_D) - #endif - - extern volatile uint8_t buttons; // The last-checked buttons in a bit array. - void lcd_buttons_update(); void lcd_completion_feedback(const bool good=true); #if ENABLED(ADVANCED_PAUSE_FEATURE) @@ -142,7 +120,7 @@ void lcd_advanced_pause_show_message(const AdvancedPauseMessage message, const AdvancedPauseMode mode=ADVANCED_PAUSE_MODE_PAUSE_PRINT, const uint8_t extruder=active_extruder); - #endif // ADVANCED_PAUSE_FEATURE + #endif #if ENABLED(G26_MESH_VALIDATION) void lcd_chirp(); @@ -155,10 +133,6 @@ float lcd_z_offset_edit(); #endif - #else - - inline void lcd_buttons_update() {} - #endif #if ENABLED(FILAMENT_LCD_DISPLAY) && ENABLED(SDSUPPORT) @@ -243,7 +217,6 @@ constexpr bool lcd_wait_for_move = false; inline void lcd_refresh() {} - inline void lcd_buttons_update() {} inline bool lcd_hasstatus() { return false; } inline void lcd_setstatus(const char* const message, const bool persist=false) { UNUSED(message); UNUSED(persist); } inline void lcd_setstatusPGM(const char* const message, const int8_t level=0) { UNUSED(message); UNUSED(level); } @@ -253,6 +226,39 @@ #endif // ULTRA_LCD +#if ENABLED(ULTIPANEL) + + #if ENABLED(NEWPANEL) // Uses digital switches, not a shift register + + // Wheel spin pins where BA is 00, 10, 11, 01 (1 bit always changes) + #define BLEN_A 0 + #define BLEN_B 1 + + #define EN_A _BV(BLEN_A) + #define EN_B _BV(BLEN_B) + + #if BUTTON_EXISTS(ENC) + #define BLEN_C 2 + #define EN_C _BV(BLEN_C) + #endif + + #if BUTTON_EXISTS(BACK) + #define BLEN_D 3 + #define EN_D _BV(BLEN_D) + #define LCD_BACK_CLICKED (buttons & EN_D) + #endif + + #endif // NEWPANEL + + extern volatile uint8_t buttons; // The last-checked buttons in a bit array. + void lcd_buttons_update(); + +#else + + inline void lcd_buttons_update() {} + +#endif + #define LCD_MESSAGEPGM(x) lcd_setstatusPGM(PSTR(x)) #define LCD_ALERTMESSAGEPGM(x) lcd_setalertstatusPGM(PSTR(x)) diff --git a/Marlin/src/lcd/ultralcd_common_HD44780.h b/Marlin/src/lcd/ultralcd_common_HD44780.h index ab136212d7..b366459cb3 100644 --- a/Marlin/src/lcd/ultralcd_common_HD44780.h +++ b/Marlin/src/lcd/ultralcd_common_HD44780.h @@ -72,19 +72,19 @@ extern volatile uint8_t buttons; //an extended version of the last checked butt #define B_I2C_BTN_OFFSET 3 // (the first three bit positions reserved for EN_A, EN_B, EN_C) // button and encoder bit positions within 'buttons' - #define B_LE (BUTTON_LEFT<