|
|
@ -20,13 +20,24 @@
|
|
|
|
*
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "../../inc/MarlinConfig.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if HAS_RESUME_CONTINUE
|
|
|
|
|
|
|
|
|
|
|
|
#include "../gcode.h"
|
|
|
|
#include "../gcode.h"
|
|
|
|
|
|
|
|
#include "../../module/stepper.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(ULTIPANEL)
|
|
|
|
|
|
|
|
#include "../../lcd/ultralcd.h"
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "../../sd/cardreader.h"
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* M0: Unconditional stop - Wait for user button press on LCD
|
|
|
|
* M0: Unconditional stop - Wait for user button press on LCD
|
|
|
|
* M1: Conditional stop - Wait for user button press on LCD
|
|
|
|
* M1: Conditional stop - Wait for user button press on LCD
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
void gcode_M0_M1() {
|
|
|
|
void GcodeSuite::M0_M1() {
|
|
|
|
const char * const args = parser.string_arg;
|
|
|
|
const char * const args = parser.string_arg;
|
|
|
|
|
|
|
|
|
|
|
|
millis_t ms = 0;
|
|
|
|
millis_t ms = 0;
|
|
|
@ -64,10 +75,10 @@ void gcode_M0_M1() {
|
|
|
|
wait_for_user = true;
|
|
|
|
wait_for_user = true;
|
|
|
|
|
|
|
|
|
|
|
|
stepper.synchronize();
|
|
|
|
stepper.synchronize();
|
|
|
|
gcode.refresh_cmd_timeout();
|
|
|
|
refresh_cmd_timeout();
|
|
|
|
|
|
|
|
|
|
|
|
if (ms > 0) {
|
|
|
|
if (ms > 0) {
|
|
|
|
ms += gcode.previous_cmd_ms; // wait until this time for a click
|
|
|
|
ms += previous_cmd_ms; // wait until this time for a click
|
|
|
|
while (PENDING(millis(), ms) && wait_for_user) idle();
|
|
|
|
while (PENDING(millis(), ms) && wait_for_user) idle();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
@ -84,3 +95,5 @@ void gcode_M0_M1() {
|
|
|
|
wait_for_user = false;
|
|
|
|
wait_for_user = false;
|
|
|
|
KEEPALIVE_STATE(IN_HANDLER);
|
|
|
|
KEEPALIVE_STATE(IN_HANDLER);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif // HAS_RESUME_CONTINUE
|