Fix the LCD pause function
Do not call long_pause recursively! long_pause() is called before resetting the lcd_command_type. As long_pause uses st_synchronize() internally, there could be time to schedule another call to long_pause().
This commit is contained in:
parent
a789a8995f
commit
2345288d40
2 changed files with 5 additions and 10 deletions
|
@ -9492,10 +9492,9 @@ void long_pause() //long pause print
|
||||||
current_position[Y_AXIS] = Y_PAUSE_POS;
|
current_position[Y_AXIS] = Y_PAUSE_POS;
|
||||||
plan_buffer_line_curposXYZE(50, active_extruder);
|
plan_buffer_line_curposXYZE(50, active_extruder);
|
||||||
|
|
||||||
// Turn off the print fan
|
// Turn off the hotends and print fan
|
||||||
|
setAllTargetHotends(0);
|
||||||
fanSpeed = 0;
|
fanSpeed = 0;
|
||||||
|
|
||||||
st_synchronize();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void serialecho_temperatures() {
|
void serialecho_temperatures() {
|
||||||
|
|
|
@ -1059,12 +1059,8 @@ void lcd_commands()
|
||||||
if (!blocks_queued() && !homing_flag)
|
if (!blocks_queued() && !homing_flag)
|
||||||
{
|
{
|
||||||
lcd_setstatuspgm(_i("Print paused"));////MSG_PRINT_PAUSED c=20 r=1
|
lcd_setstatuspgm(_i("Print paused"));////MSG_PRINT_PAUSED c=20 r=1
|
||||||
long_pause();
|
lcd_commands_type = LcdCommands::Idle;
|
||||||
if (lcd_commands_type == LcdCommands::LongPause) // !!! because "lcd_commands_type" can be changed during/inside "long_pause()"
|
lcd_commands_step = 0;
|
||||||
{
|
|
||||||
lcd_commands_type = LcdCommands::Idle;
|
|
||||||
lcd_commands_step = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1644,7 +1640,7 @@ void lcd_pause_print()
|
||||||
{
|
{
|
||||||
lcd_return_to_status();
|
lcd_return_to_status();
|
||||||
stop_and_save_print_to_ram(0.0,0.0);
|
stop_and_save_print_to_ram(0.0,0.0);
|
||||||
setAllTargetHotends(0);
|
long_pause();
|
||||||
isPrintPaused = true;
|
isPrintPaused = true;
|
||||||
if (LcdCommands::Idle == lcd_commands_type)
|
if (LcdCommands::Idle == lcd_commands_type)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue