Fix: M112 calling kill from interrupt (#9922)

Fix #9906
This commit is contained in:
Scott Lahteine 2018-03-03 23:13:53 -06:00 committed by GitHub
parent 7450b7c36e
commit b6fa55aa37
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 8 deletions

View File

@ -80,6 +80,8 @@
#if ENABLED(EMERGENCY_PARSER)
bool killed_by_M112; // = false
#include "stepper.h"
#include "language.h"
@ -155,7 +157,7 @@
wait_for_user = wait_for_heatup = false;
break;
case state_M112:
kill(PSTR(MSG_KILLED));
killed_by_M112 = true;
break;
case state_M410:
quickstop_stepper();

View File

@ -21,12 +21,11 @@
*/
/**
MarlinSerial.h - Hardware serial library for Wiring
Copyright (c) 2006 Nicholas Zambetti. All right reserved.
Modified 28 September 2010 by Mark Sproul
Modified 14 February 2016 by Andreas Hardtung (added tx buffer)
* MarlinSerial.h - Hardware serial library for Wiring
* Copyright (c) 2006 Nicholas Zambetti. All right reserved.
*
* Modified 28 September 2010 by Mark Sproul
* Modified 14 February 2016 by Andreas Hardtung (added tx buffer)
*/
#ifndef MARLINSERIAL_H
@ -102,6 +101,10 @@
extern ring_buffer_pos_t rx_max_enqueued;
#endif
#if ENABLED(EMERGENCY_PARSER)
extern bool killed_by_M112;
#endif
class MarlinSerial { //: public Stream
public:

View File

@ -744,6 +744,10 @@ void Temperature::manage_heater() {
static bool last_pause_state;
#endif
#if ENABLED(EMERGENCY_PARSER)
if (killed_by_M112) kill(PSTR(MSG_KILLED));
#endif
if (!temp_meas_ready) return;
updateTemperaturesFromRawValues(); // also resets the watchdog