Added chain of command so hotend wont be turned off before print is done.

This commit is contained in:
blddk 2012-07-07 19:15:48 +03:00
parent dd2b9ef537
commit 982796f9f0

View file

@ -1421,6 +1421,9 @@ FORCE_INLINE void process_commands()
case 42: //M42 -Change pin status via gcode case 42: //M42 -Change pin status via gcode
if (code_seen('S')) if (code_seen('S'))
{ {
#ifdef CHAIN_OF_COMMAND
st_synchronize(); // wait for all movements to finish
#endif
int pin_status = code_value(); int pin_status = code_value();
if (code_seen('P') && pin_status >= 0 && pin_status <= 255) if (code_seen('P') && pin_status >= 0 && pin_status <= 255)
{ {
@ -1444,6 +1447,9 @@ FORCE_INLINE void process_commands()
} }
break; break;
case 104: // M104 case 104: // M104
#ifdef CHAIN_OF_COMMAND
st_synchronize(); // wait for all movements to finish
#endif
if (code_seen('S')) target_raw = temp2analogh(target_temp = code_value()); if (code_seen('S')) target_raw = temp2analogh(target_temp = code_value());
#ifdef WATCHPERIOD #ifdef WATCHPERIOD
if(target_raw > current_raw) if(target_raw > current_raw)
@ -1458,6 +1464,9 @@ FORCE_INLINE void process_commands()
#endif #endif
break; break;
case 140: // M140 set bed temp case 140: // M140 set bed temp
#ifdef CHAIN_OF_COMMAND
st_synchronize(); // wait for all movements to finish
#endif
#if TEMP_1_PIN > -1 || defined BED_USES_AD595 #if TEMP_1_PIN > -1 || defined BED_USES_AD595
if (code_seen('S')) target_bed_raw = temp2analogBed(code_value()); if (code_seen('S')) target_bed_raw = temp2analogBed(code_value());
#endif #endif
@ -1500,6 +1509,9 @@ FORCE_INLINE void process_commands()
return; return;
//break; //break;
case 109: { // M109 - Wait for extruder heater to reach target. case 109: { // M109 - Wait for extruder heater to reach target.
#ifdef CHAIN_OF_COMMAND
st_synchronize(); // wait for all movements to finish
#endif
if (code_seen('S')) target_raw = temp2analogh(target_temp = code_value()); if (code_seen('S')) target_raw = temp2analogh(target_temp = code_value());
#ifdef WATCHPERIOD #ifdef WATCHPERIOD
if(target_raw>current_raw) if(target_raw>current_raw)
@ -1550,6 +1562,9 @@ FORCE_INLINE void process_commands()
} }
break; break;
case 190: // M190 - Wait for bed heater to reach target temperature. case 190: // M190 - Wait for bed heater to reach target temperature.
#ifdef CHAIN_OF_COMMAND
st_synchronize(); // wait for all movements to finish
#endif
#if TEMP_1_PIN > -1 #if TEMP_1_PIN > -1
if (code_seen('S')) target_bed_raw = temp2analogBed(code_value()); if (code_seen('S')) target_bed_raw = temp2analogBed(code_value());
codenum = millis(); codenum = millis();
@ -1573,6 +1588,9 @@ FORCE_INLINE void process_commands()
break; break;
#if FAN_PIN > -1 #if FAN_PIN > -1
case 106: //M106 Fan On case 106: //M106 Fan On
#ifdef CHAIN_OF_COMMAND
st_synchronize(); // wait for all movements to finish
#endif
if (code_seen('S')) if (code_seen('S'))
{ {
unsigned char l_fan_code_val = constrain(code_value(),0,255); unsigned char l_fan_code_val = constrain(code_value(),0,255);
@ -1627,6 +1645,9 @@ FORCE_INLINE void process_commands()
SET_OUTPUT(PS_ON_PIN); //GND SET_OUTPUT(PS_ON_PIN); //GND
break; break;
case 81: // M81 - ATX Power Off case 81: // M81 - ATX Power Off
#ifdef CHAIN_OF_COMMAND
st_synchronize(); // wait for all movements to finish
#endif
SET_INPUT(PS_ON_PIN); //Floating SET_INPUT(PS_ON_PIN); //Floating
break; break;
#endif #endif