|
@ -915,16 +915,17 @@ Having the real displacement of the head, we can calculate the total movement le |
|
|
else |
|
|
else |
|
|
{ |
|
|
{ |
|
|
block->acceleration_st = ceil(acceleration * steps_per_mm); // convert to: acceleration steps/sec^2
|
|
|
block->acceleration_st = ceil(acceleration * steps_per_mm); // convert to: acceleration steps/sec^2
|
|
|
// Limit acceleration per axis
|
|
|
|
|
|
if(((float)block->acceleration_st * (float)block->steps_x / (float)block->step_event_count) > axis_steps_per_sqr_second[X_AXIS]) |
|
|
|
|
|
block->acceleration_st = axis_steps_per_sqr_second[X_AXIS]; |
|
|
|
|
|
if(((float)block->acceleration_st * (float)block->steps_y / (float)block->step_event_count) > axis_steps_per_sqr_second[Y_AXIS]) |
|
|
|
|
|
block->acceleration_st = axis_steps_per_sqr_second[Y_AXIS]; |
|
|
|
|
|
if(((float)block->acceleration_st * (float)block->steps_e / (float)block->step_event_count) > axis_steps_per_sqr_second[E_AXIS]) |
|
|
|
|
|
block->acceleration_st = axis_steps_per_sqr_second[E_AXIS]; |
|
|
|
|
|
if(((float)block->acceleration_st * (float)block->steps_z / (float)block->step_event_count ) > axis_steps_per_sqr_second[Z_AXIS]) |
|
|
|
|
|
block->acceleration_st = axis_steps_per_sqr_second[Z_AXIS]; |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
// Limit acceleration per axis
|
|
|
|
|
|
if(((float)block->acceleration_st * (float)block->steps_x / (float)block->step_event_count) > axis_steps_per_sqr_second[X_AXIS]) |
|
|
|
|
|
block->acceleration_st = axis_steps_per_sqr_second[X_AXIS]; |
|
|
|
|
|
if(((float)block->acceleration_st * (float)block->steps_y / (float)block->step_event_count) > axis_steps_per_sqr_second[Y_AXIS]) |
|
|
|
|
|
block->acceleration_st = axis_steps_per_sqr_second[Y_AXIS]; |
|
|
|
|
|
if(((float)block->acceleration_st * (float)block->steps_e / (float)block->step_event_count) > axis_steps_per_sqr_second[E_AXIS]) |
|
|
|
|
|
block->acceleration_st = axis_steps_per_sqr_second[E_AXIS]; |
|
|
|
|
|
if(((float)block->acceleration_st * (float)block->steps_z / (float)block->step_event_count ) > axis_steps_per_sqr_second[Z_AXIS]) |
|
|
|
|
|
block->acceleration_st = axis_steps_per_sqr_second[Z_AXIS]; |
|
|
|
|
|
|
|
|
block->acceleration = block->acceleration_st / steps_per_mm; |
|
|
block->acceleration = block->acceleration_st / steps_per_mm; |
|
|
block->acceleration_rate = (long)((float)block->acceleration_st * (16777216.0 / (F_CPU / 8.0))); |
|
|
block->acceleration_rate = (long)((float)block->acceleration_st * (16777216.0 / (F_CPU / 8.0))); |
|
|
|
|
|
|
|
|