|
@@ -954,6 +954,7 @@ Having the real displacement of the head, we can calculate the total movement le
|
|
|
{
|
|
|
current_speed[i] = delta_mm[i] * inverse_second;
|
|
|
#ifdef TMC2130
|
|
|
+#ifdef FEEDRATE_LIMIT
|
|
|
float max_fr = max_feedrate[i];
|
|
|
if (i < 2) // X, Y
|
|
|
{
|
|
@@ -970,6 +971,7 @@ Having the real displacement of the head, we can calculate the total movement le
|
|
|
}
|
|
|
if(fabs(current_speed[i]) > max_fr)
|
|
|
speed_factor = min(speed_factor, max_fr / fabs(current_speed[i]));
|
|
|
+#endif //FEEDRATE_LIMIT
|
|
|
#else //TMC2130
|
|
|
if(fabs(current_speed[i]) > max_feedrate[i])
|
|
|
speed_factor = min(speed_factor, max_feedrate[i] / fabs(current_speed[i]));
|
|
@@ -1015,6 +1017,7 @@ Having the real displacement of the head, we can calculate the total movement le
|
|
|
if (block->steps_z.wide && (block->acceleration_st > axis_steps_per_sqr_second[Z_AXIS])) block->acceleration_st = axis_steps_per_sqr_second[Z_AXIS];
|
|
|
if (block->steps_e.wide && (block->acceleration_st > axis_steps_per_sqr_second[E_AXIS])) block->acceleration_st = axis_steps_per_sqr_second[E_AXIS];
|
|
|
#else // SIMPLE_ACCEL_LIMIT
|
|
|
+#ifdef ACCEL_LIMIT
|
|
|
if (tmc2130_mode == TMC2130_MODE_SILENT)
|
|
|
{
|
|
|
if ((block->steps_x.wide > block->step_event_count.wide / 2) || (block->steps_y.wide > block->step_event_count.wide / 2))
|
|
@@ -1033,6 +1036,7 @@ Having the real displacement of the head, we can calculate the total movement le
|
|
|
block->acceleration_st = axis_steps_per_sqr_second[Z_AXIS];
|
|
|
if(((float)block->acceleration_st * (float)block->steps_e.wide / (float)block->step_event_count.wide) > axis_steps_per_sqr_second[E_AXIS])
|
|
|
block->acceleration_st = axis_steps_per_sqr_second[E_AXIS];
|
|
|
+#endif // ACCEL_LIMIT
|
|
|
#endif // SIMPLE_ACCEL_LIMIT
|
|
|
#else //TMC2130
|
|
|
// Limit acceleration per axis
|