diff options
author | blddk <michael.andresen@gmail.com> | 2012-01-22 15:27:27 +0100 |
---|---|---|
committer | blddk <michael.andresen@gmail.com> | 2012-01-22 15:27:27 +0100 |
commit | e7fb583df933a7012f2c42d84375b99ced0202c4 (patch) | |
tree | 4a7e49d1e8ff4948e841895ef410bf50bf1a105f | |
parent | 439f339f74285affa03d53d6b4e1dc6a75f2591f (diff) |
Added option to set a delay after enabeling stepper driver, to allow the driver to enable (time needed according to datasheet)
-rw-r--r-- | Sprinter/Sprinter.pde | 23 |
1 files changed, 23 insertions, 0 deletions
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 |