Added option to set a delay after enabeling stepper driver, to allow the driver to enable (time needed according to datasheet)

This commit is contained in:
blddk 2012-01-22 15:27:27 +01:00
parent 439f339f74
commit e7fb583df9

View file

@ -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