this->step_signal_hook = new Hook();
steps_per_mm = 1.0F;
- max_rate = 50.0F;
+ max_speed = 50.0F;
last_milestone_steps = 0;
- last_milestone_mm = 0.0F;
+ last_milestone = 0.0F;
}
StepperMotor::StepperMotor(Pin& step, Pin& dir, Pin& en) : step_pin(step), dir_pin(dir), en_pin(en) {
set_high_on_debug(en.port_number, en.pin);
steps_per_mm = 1.0F;
- max_rate = 50.0F;
+ max_speed = 50.0F;
last_milestone_steps = 0;
- last_milestone_mm = 0.0F;
+ last_milestone = 0.0F;
}
// This is called ( see the .h file, we had to put a part of things there for obscure inline reasons ) when a step has to be generated
void StepperMotor::change_steps_per_mm(float new_steps)
{
steps_per_mm = new_steps;
- last_milestone_steps = lround(last_milestone_mm * steps_per_mm);
+ last_milestone_steps = lround(last_milestone * steps_per_mm);
}
void StepperMotor::change_last_milestone(float new_milestone)
{
- last_milestone_mm = new_milestone;
- last_milestone_steps = lround(last_milestone_mm * steps_per_mm);
+ last_milestone = new_milestone;
+ last_milestone_steps = lround(last_milestone * steps_per_mm);
}
int StepperMotor::steps_to_target(float target)
beta_stepper_motor->change_steps_per_mm(steps_per_mm[1]);
gamma_stepper_motor->change_steps_per_mm(steps_per_mm[2]);
- alpha_stepper_motor->max_rate = THEKERNEL->config->value(alpha_max_rate_checksum)->by_default(30000.0F)->as_number() / 60.0F;
- beta_stepper_motor->max_rate = THEKERNEL->config->value(beta_max_rate_checksum )->by_default(30000.0F)->as_number() / 60.0F;
- gamma_stepper_motor->max_rate = THEKERNEL->config->value(gamma_max_rate_checksum)->by_default(30000.0F)->as_number() / 60.0F;
+ alpha_stepper_motor->max_speed = THEKERNEL->config->value(alpha_max_rate_checksum)->by_default(30000.0F)->as_number() / 60.0F;
+ beta_stepper_motor->max_speed = THEKERNEL->config->value(beta_max_rate_checksum )->by_default(30000.0F)->as_number() / 60.0F;
+ gamma_stepper_motor->max_speed = THEKERNEL->config->value(gamma_max_rate_checksum)->by_default(30000.0F)->as_number() / 60.0F;
actuators.clear();
actuators.push_back(alpha_stepper_motor);
if (gcode->has_letter('Z'))
axes[Z_AXIS].max_speed = gcode->get_value('Z');
if (gcode->has_letter('A'))
- alpha_stepper_motor->max_rate= gcode->get_value('A');
+ alpha_stepper_motor->max_speed= gcode->get_value('A');
if (gcode->has_letter('B'))
- beta_stepper_motor->max_rate= gcode->get_value('B');
+ beta_stepper_motor->max_speed= gcode->get_value('B');
if (gcode->has_letter('C'))
- gamma_stepper_motor->max_rate= gcode->get_value('C');
+ gamma_stepper_motor->max_speed= gcode->get_value('C');
gcode->stream->printf("X:%g Y:%g Z:%g A:%g B:%g C:%g ",
axes[X_AXIS].max_speed, axes[Y_AXIS].max_speed, axes[Z_AXIS].max_speed,
- alpha_stepper_motor->max_rate, beta_stepper_motor->max_rate, gamma_stepper_motor->max_rate);
+ alpha_stepper_motor->max_speed, beta_stepper_motor->max_speed, gamma_stepper_motor->max_speed);
gcode->add_nl = true;
gcode->mark_as_taken();
break;
gcode->stream->printf(";X- Junction Deviation, S - Minimum Planner speed:\nM205 X%1.5f S%1.5f\n", THEKERNEL->planner->junction_deviation, THEKERNEL->planner->minimum_planner_speed);
gcode->stream->printf(";Max feedrates in mm/sec, XYZ cartesian, ABC actuator:\nM203 X%1.5f Y%1.5f Z%1.5f A%1.5f B%1.5f C%1.5f\n",
axes[X_AXIS].max_speed, axes[Y_AXIS].max_speed, axes[Z_AXIS].max_speed,
- alpha_stepper_motor->max_rate, beta_stepper_motor->max_rate, gamma_stepper_motor->max_rate);
+ alpha_stepper_motor->max_speed, beta_stepper_motor->max_speed, gamma_stepper_motor->max_speed);
gcode->mark_as_taken();
break;
// check per-actuator speed limits
for (int actuator = 0; actuator <= 2; actuator++)
{
- float actuator_rate = fabs(actuator_pos[actuator] - actuators[actuator]->last_milestone_mm) * rate_mm_s / millimeters_of_travel;
+ float actuator_rate = fabs(actuator_pos[actuator] - actuators[actuator]->last_milestone) * rate_mm_s / millimeters_of_travel;
- if (actuator_rate > actuators[actuator]->max_rate)
- rate_mm_s *= (actuators[actuator]->max_rate / actuator_rate);
+ if (actuator_rate > actuators[actuator]->max_speed)
+ rate_mm_s *= (actuators[actuator]->max_speed / actuator_rate);
}
// Append the block to the planner