From a32f7b329ce1c9e78540017885bb94f005402d15 Mon Sep 17 00:00:00 2001 From: Thomas Moore Date: Wed, 31 May 2017 21:26:05 +0000 Subject: [PATCH] Fix heater status display for advanced pause --- Marlin/Marlin_main.cpp | 3 ++- Marlin/ultralcd_impl_DOGM.h | 4 +++- Marlin/ultralcd_impl_HD44780.h | 5 +---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 2e468a29d..de039330c 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -5931,7 +5931,8 @@ inline void gcode_M17() { idle(); wait_for_heatup = false; HOTEND_LOOP() { - if (abs(thermalManager.degHotend(e) - thermalManager.degTargetHotend(e)) > 3) { + const int16_t target_temp = thermalManager.degTargetHotend(e); + if (target_temp && abs(thermalManager.degHotend(e) - target_temp) > 3) { wait_for_heatup = true; break; } diff --git a/Marlin/ultralcd_impl_DOGM.h b/Marlin/ultralcd_impl_DOGM.h index 57165c33f..fcda9be68 100644 --- a/Marlin/ultralcd_impl_DOGM.h +++ b/Marlin/ultralcd_impl_DOGM.h @@ -704,7 +704,9 @@ static void lcd_implementation_status_screen() { lcd_print(' '); lcd_print(itostr3(thermalManager.degHotend(active_extruder))); lcd_print('/'); - lcd_print(itostr3(thermalManager.degTargetHotend(active_extruder))); + + if (lcd_blink() || !thermalManager.is_heater_idle(active_extruder)) + lcd_print(itostr3(thermalManager.degTargetHotend(active_extruder))); } #endif // ADVANCED_PAUSE_FEATURE diff --git a/Marlin/ultralcd_impl_HD44780.h b/Marlin/ultralcd_impl_HD44780.h index 2dc93ef53..776ad0aee 100644 --- a/Marlin/ultralcd_impl_HD44780.h +++ b/Marlin/ultralcd_impl_HD44780.h @@ -844,10 +844,7 @@ static void lcd_implementation_status_screen() { static void lcd_implementation_hotend_status(const uint8_t row) { if (row < LCD_HEIGHT) { lcd.setCursor(LCD_WIDTH - 9, row); - lcd.print(LCD_STR_THERMOMETER[0]); - lcd.print(itostr3(thermalManager.degHotend(active_extruder))); - lcd.print('/'); - lcd.print(itostr3(thermalManager.degTargetHotend(active_extruder))); + _draw_heater_status(active_extruder, LCD_STR_THERMOMETER[0], lcd_blink()); } }