From e7fb583df933a7012f2c42d84375b99ced0202c4 Mon Sep 17 00:00:00 2001 From: blddk Date: Sun, 22 Jan 2012 15:27:27 +0100 Subject: Added option to set a delay after enabeling stepper driver, to allow the driver to enable (time needed according to datasheet) --- Sprinter/Sprinter.pde | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Sprinter/Sprinter.pde b/Sprinter/Sprinter.pde index c8acc67..5387923 100644 --- a/Sprinter/Sprinter.pde +++ b/Sprinter/Sprinter.pde @@ -1284,10 +1284,33 @@ inline void linear_move(unsigned long axis_steps_remaining[]) // make linear mov //Only enable axis that are moving. If the axis doesn't need to move then it can stay disabled depending on configuration. // TODO: maybe it's better to refactor into a generic enable(int axis) function, that will probably take more ram, // but will reduce code size +#ifdef DELAY_ENABLE + if(axis_steps_remaining[0]) + { + enable_x(); + delayMicroseconds(DELAY_ENABLE); + } + if(axis_steps_remaining[1]) + { + enable_y(); + delayMicroseconds(DELAY_ENABLE); + } + if(axis_steps_remaining[2]) + { + enable_z(); + delayMicroseconds(DELAY_ENABLE); + } + if(axis_steps_remaining[3]) + { + enable_e(); + delayMicroseconds(DELAY_ENABLE); + } +#else if(axis_steps_remaining[0]) enable_x(); if(axis_steps_remaining[1]) enable_y(); if(axis_steps_remaining[2]) enable_z(); if(axis_steps_remaining[3]) enable_e(); +#endif //Define variables that are needed for the Bresenham algorithm. Please note that Z is not currently included in the Bresenham algorithm. unsigned long delta[] = {axis_steps_remaining[0], axis_steps_remaining[1], axis_steps_remaining[2], axis_steps_remaining[3]}; //TODO: implement a "for" to support N axes -- cgit v1.2.1 From eb7a192c945677d09ddd669cc047480bc5ddeeae Mon Sep 17 00:00:00 2001 From: blddk Date: Sun, 22 Jan 2012 15:28:46 +0100 Subject: Added option to set a delay after enabling a stepper driver, default turned off to keep current behavior. --- Sprinter/Configuration.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Sprinter/Configuration.h b/Sprinter/Configuration.h index 344a7bd..250a2d2 100644 --- a/Sprinter/Configuration.h +++ b/Sprinter/Configuration.h @@ -66,6 +66,9 @@ const bool Z_ENDSTOP_INVERT = false; #define Z_ENABLE_ON 0 #define E_ENABLE_ON 0 +//Uncomment if you have problems with a stepper driver enabeling too late, this will also set how many microseconds delay there will be after enabeling the driver +//#define DELAY_ENABLE 15 + // Disables axis when it's not being used. const bool DISABLE_X = false; const bool DISABLE_Y = false; -- cgit v1.2.1 From d8b6c5f233e905dbb5282a255dddd68deb1c3d7f Mon Sep 17 00:00:00 2001 From: blddk Date: Sun, 22 Jan 2012 15:43:51 +0100 Subject: Changed temperature table for bed, to the one for the bed, instead of for the heater. --- Sprinter/Sprinter.pde | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprinter/Sprinter.pde b/Sprinter/Sprinter.pde index 5387923..e793891 100644 --- a/Sprinter/Sprinter.pde +++ b/Sprinter/Sprinter.pde @@ -971,7 +971,7 @@ inline void process_commands() break; case 190: // M190 - Wait bed for heater to reach target. #if TEMP_1_PIN > -1 - if (code_seen('S')) target_bed_raw = temp2analogh(code_value()); + if (code_seen('S')) target_bed_raw = temp2analogBed(code_value()); codenum = millis(); while(current_bed_raw < target_bed_raw) { if( (millis()-codenum) > 1000 ) //Print Temp Reading every 1 second while heating up. -- cgit v1.2.1