Merge pull request #4143 from gudnimg/improve-lcd-update
Fix lcd_update() FW crashes
This commit is contained in:
commit
7ee1640792
|
|
@ -9437,6 +9437,9 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument s
|
||||||
check_axes_activity();
|
check_axes_activity();
|
||||||
MMU2::mmu2.mmu_loop();
|
MMU2::mmu2.mmu_loop();
|
||||||
|
|
||||||
|
lcd_knob_update();
|
||||||
|
backlight_update();
|
||||||
|
|
||||||
// handle longpress
|
// handle longpress
|
||||||
if(lcd_longpress_trigger)
|
if(lcd_longpress_trigger)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -690,11 +690,7 @@ void lcd_quick_feedback(void)
|
||||||
lcd_beeper_quick_feedback();
|
lcd_beeper_quick_feedback();
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_update(uint8_t lcdDrawUpdateOverride)
|
void lcd_knob_update() {
|
||||||
{
|
|
||||||
if (lcd_draw_update < lcdDrawUpdateOverride)
|
|
||||||
lcd_draw_update = lcdDrawUpdateOverride;
|
|
||||||
|
|
||||||
if (lcd_backlight_wake_trigger) {
|
if (lcd_backlight_wake_trigger) {
|
||||||
lcd_backlight_wake_trigger = false;
|
lcd_backlight_wake_trigger = false;
|
||||||
backlight_wake();
|
backlight_wake();
|
||||||
|
|
@ -711,8 +707,12 @@ void lcd_update(uint8_t lcdDrawUpdateOverride)
|
||||||
lcd_draw_update = 1;
|
lcd_draw_update = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
backlight_update();
|
void lcd_update(uint8_t lcdDrawUpdateOverride)
|
||||||
|
{
|
||||||
|
if (lcd_draw_update < lcdDrawUpdateOverride)
|
||||||
|
lcd_draw_update = lcdDrawUpdateOverride;
|
||||||
|
|
||||||
if (!lcd_update_enabled) return;
|
if (!lcd_update_enabled) return;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,10 @@ extern void lcd_beeper_quick_feedback(void);
|
||||||
//Cause an LCD refresh, and give the user visual or audible feedback that something has happened
|
//Cause an LCD refresh, and give the user visual or audible feedback that something has happened
|
||||||
extern void lcd_quick_feedback(void);
|
extern void lcd_quick_feedback(void);
|
||||||
|
|
||||||
|
/// @brief Check whether knob is rotated or clicked and update relevant
|
||||||
|
///variables. Flags are set by lcd_buttons_update in ISR context.
|
||||||
|
extern void lcd_knob_update();
|
||||||
|
|
||||||
extern void lcd_update(uint8_t lcdDrawUpdateOverride);
|
extern void lcd_update(uint8_t lcdDrawUpdateOverride);
|
||||||
|
|
||||||
extern void lcd_update_enable(uint8_t enabled);
|
extern void lcd_update_enable(uint8_t enabled);
|
||||||
|
|
|
||||||
|
|
@ -2208,7 +2208,8 @@ uint8_t lcd_alright() {
|
||||||
lcd_consume_click();
|
lcd_consume_click();
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
delay_keep_alive(0);
|
manage_heater();
|
||||||
|
manage_inactivity(true);
|
||||||
|
|
||||||
if (lcd_encoder)
|
if (lcd_encoder)
|
||||||
{
|
{
|
||||||
|
|
@ -4696,7 +4697,8 @@ uint8_t choose_menu_P(const char *header, const char *item, const char *last_ite
|
||||||
KEEPALIVE_STATE(PAUSED_FOR_USER);
|
KEEPALIVE_STATE(PAUSED_FOR_USER);
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
delay_keep_alive(0);
|
manage_heater();
|
||||||
|
manage_inactivity(true);
|
||||||
|
|
||||||
if (lcd_encoder)
|
if (lcd_encoder)
|
||||||
{
|
{
|
||||||
|
|
@ -4787,7 +4789,8 @@ char reset_menu() {
|
||||||
lcd_puts_at_P(1, i, item[first + i]);
|
lcd_puts_at_P(1, i, item[first + i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
delay_keep_alive(0);
|
manage_heater();
|
||||||
|
manage_inactivity(true);
|
||||||
|
|
||||||
if (lcd_encoder) {
|
if (lcd_encoder) {
|
||||||
if (lcd_encoder < 0) {
|
if (lcd_encoder < 0) {
|
||||||
|
|
@ -6906,6 +6909,7 @@ static bool lcd_selftest_manual_fan_check(int _fan, bool check_opposite,
|
||||||
|
|
||||||
|
|
||||||
manage_heater();
|
manage_heater();
|
||||||
|
manage_inactivity(true);
|
||||||
_delay(100);
|
_delay(100);
|
||||||
|
|
||||||
} while (!lcd_clicked());
|
} while (!lcd_clicked());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue