repaired nozzle runout prevention to not collide with automatic stepper disabeling.

This commit is contained in:
Bernhard 2011-12-11 15:42:56 +01:00
parent 88ee053af0
commit 01001b89d2
2 changed files with 10 additions and 5 deletions

View file

@ -157,9 +157,8 @@
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded //if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
//#define EXTRUDER_RUNOUT_PREVENT //#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190 #define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 60. #define EXTRUDER_RUNOUT_SECONDS 30.
#define EXTRUDER_RUNOUT_ESTEPS 14. //mm filament #define EXTRUDER_RUNOUT_ESTEPS 14. //mm filament
#define EXTRUDER_RUNOUT_EXTRUDE 50. //mm filament
#define EXTRUDER_RUNOUT_SPEED 1500. //extrusion speed #define EXTRUDER_RUNOUT_SPEED 1500. //extrusion speed

View file

@ -235,7 +235,9 @@ void setup()
SERIAL_PROTOCOLLNPGM("start"); SERIAL_PROTOCOLLNPGM("start");
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOPGM("Free Memory:"); SERIAL_ECHOPGM("Free Memory:");
SERIAL_ECHOLN(freeMemory()); SERIAL_ECHO(freeMemory());
SERIAL_ECHOPGM(" PlannerBufferBytes:");
SERIAL_ECHOLN((int)sizeof(block_t)*BLOCK_BUFFER_SIZE);
for(int8_t i = 0; i < BUFSIZE; i++) for(int8_t i = 0; i < BUFSIZE; i++)
{ {
fromsd[i] = false; fromsd[i] = false;
@ -1207,7 +1209,8 @@ void manage_inactivity(byte debug)
last_stepperdisabled_time=previous_millis_cmd; last_stepperdisabled_time=previous_millis_cmd;
else else
{ {
enquecommand(DEFAULT_STEPPER_DEACTIVE_COMMAND); if( (X_ENABLE_ON && (READ(X_ENABLE_PIN)!=0)) || (!X_ENABLE_ON && READ(X_ENABLE_PIN)==0) )
enquecommand(DEFAULT_STEPPER_DEACTIVE_COMMAND);
last_stepperdisabled_time=millis(); last_stepperdisabled_time=millis();
} }
} }
@ -1215,6 +1218,7 @@ void manage_inactivity(byte debug)
if( (millis()-previous_millis_cmd) > EXTRUDER_RUNOUT_SECONDS*1000 ) if( (millis()-previous_millis_cmd) > EXTRUDER_RUNOUT_SECONDS*1000 )
if(degHotend(active_extruder)>EXTRUDER_RUNOUT_MINTEMP) if(degHotend(active_extruder)>EXTRUDER_RUNOUT_MINTEMP)
{ {
bool oldstatus=READ(E_ENABLE_PIN);
enable_e(); enable_e();
float oldepos=current_position[E_AXIS]; float oldepos=current_position[E_AXIS];
float oldedes=destination[E_AXIS]; float oldedes=destination[E_AXIS];
@ -1225,7 +1229,9 @@ void manage_inactivity(byte debug)
destination[E_AXIS]=oldedes; destination[E_AXIS]=oldedes;
plan_set_e_position(oldepos); plan_set_e_position(oldepos);
previous_millis_cmd=millis(); previous_millis_cmd=millis();
enquecommand(DEFAULT_STEPPER_DEACTIVE_COMMAND); //enquecommand(DEFAULT_STEPPER_DEACTIVE_COMMAND);
st_synchronize();
WRITE(E_ENABLE_PIN,oldstatus);
} }
#endif #endif
check_axes_activity(); check_axes_activity();