|
@@ -64,7 +64,7 @@ void lcd_status_screen();
|
64
|
64
|
millis_t next_lcd_update_ms;
|
65
|
65
|
|
66
|
66
|
uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to draw, decrements after every draw. Set to 2 in LCD routines so the LCD gets at least 1 full redraw (first redraw is partial)
|
67
|
|
-millis_t max_display_update_time = 0;
|
|
67
|
+uint16_t max_display_update_time = 0;
|
68
|
68
|
|
69
|
69
|
#if ENABLED(DOGLCD)
|
70
|
70
|
bool drawing_screen = false;
|
|
@@ -2978,12 +2978,13 @@ void lcd_update() {
|
2978
|
2978
|
lcdDrawUpdate = LCDVIEW_REDRAW_NOW;
|
2979
|
2979
|
}
|
2980
|
2980
|
|
2981
|
|
- millis_t bbr = planner.block_buffer_runtime();
|
|
2981
|
+ // then we want to use 1/2 of the time only.
|
|
2982
|
+ uint16_t bbr2 = planner.block_buffer_runtime() >> 1;
|
2982
|
2983
|
|
2983
|
2984
|
#if ENABLED(DOGLCD)
|
2984
|
|
- if ((lcdDrawUpdate || drawing_screen) && (!bbr || (bbr > 2 * max_display_update_time * 1000)))
|
|
2985
|
+ if ((lcdDrawUpdate || drawing_screen) && (!bbr2 || (bbr2 > max_display_update_time)))
|
2985
|
2986
|
#else
|
2986
|
|
- if (lcdDrawUpdate && (!bbr || (bbr > 2 * max_display_update_time * 1000)))
|
|
2987
|
+ if (lcdDrawUpdate && (!bbr2 || (bbr2 > max_display_update_time)))
|
2987
|
2988
|
#endif
|
2988
|
2989
|
{
|
2989
|
2990
|
#if ENABLED(DOGLCD)
|