Use cs.max_jerk from ConfigurationStore.
This commit is contained in:
parent
bb66bfe6a7
commit
ac7c062161
5 changed files with 17 additions and 23 deletions
|
@ -103,7 +103,7 @@ void Config_PrintSettings(uint8_t level)
|
|||
echomagic, echomagic, cs.max_acceleration_units_per_sq_second_normal[X_AXIS], cs.max_acceleration_units_per_sq_second_normal[Y_AXIS], cs.max_acceleration_units_per_sq_second_normal[Z_AXIS], cs.max_acceleration_units_per_sq_second_normal[E_AXIS],
|
||||
echomagic, echomagic, max_acceleration_units_per_sq_second_silent[X_AXIS], max_acceleration_units_per_sq_second_silent[Y_AXIS], max_acceleration_units_per_sq_second_silent[Z_AXIS], max_acceleration_units_per_sq_second_silent[E_AXIS],
|
||||
echomagic, echomagic, cs.acceleration, cs.retract_acceleration,
|
||||
echomagic, echomagic, cs.minimumfeedrate, cs.mintravelfeedrate, cs.minsegmenttime, max_jerk[X_AXIS], max_jerk[Y_AXIS], max_jerk[Z_AXIS], max_jerk[E_AXIS],
|
||||
echomagic, echomagic, cs.minimumfeedrate, cs.mintravelfeedrate, cs.minsegmenttime, cs.max_jerk[X_AXIS], cs.max_jerk[Y_AXIS], cs.max_jerk[Z_AXIS], cs.max_jerk[E_AXIS],
|
||||
echomagic, echomagic, add_homing[X_AXIS], add_homing[Y_AXIS], add_homing[Z_AXIS]
|
||||
#else //TMC2130
|
||||
printf_P(PSTR(
|
||||
|
@ -118,7 +118,7 @@ void Config_PrintSettings(uint8_t level)
|
|||
echomagic, echomagic, max_feedrate[X_AXIS], max_feedrate[Y_AXIS], max_feedrate[Z_AXIS], max_feedrate[E_AXIS],
|
||||
echomagic, echomagic, max_acceleration_units_per_sq_second[X_AXIS], max_acceleration_units_per_sq_second[Y_AXIS], max_acceleration_units_per_sq_second[Z_AXIS], max_acceleration_units_per_sq_second[E_AXIS],
|
||||
echomagic, echomagic, cs.acceleration, cs.retract_acceleration,
|
||||
echomagic, echomagic, cs.minimumfeedrate, cs.mintravelfeedrate, cs.minsegmenttime, max_jerk[X_AXIS], max_jerk[Y_AXIS], max_jerk[Z_AXIS], max_jerk[E_AXIS],
|
||||
echomagic, echomagic, cs.minimumfeedrate, cs.mintravelfeedrate, cs.minsegmenttime, cs.max_jerk[X_AXIS], cs.max_jerk[Y_AXIS], cs.max_jerk[Z_AXIS], cs.max_jerk[E_AXIS],
|
||||
echomagic, echomagic, add_homing[X_AXIS], add_homing[Y_AXIS], add_homing[Z_AXIS]
|
||||
#endif //TMC2130
|
||||
);
|
||||
|
@ -232,8 +232,8 @@ bool Config_RetrieveSettings(uint16_t offset)
|
|||
EEPROM_READ_VAR(i,cs);
|
||||
|
||||
|
||||
if (max_jerk[X_AXIS] > DEFAULT_XJERK) max_jerk[X_AXIS] = DEFAULT_XJERK;
|
||||
if (max_jerk[Y_AXIS] > DEFAULT_YJERK) max_jerk[Y_AXIS] = DEFAULT_YJERK;
|
||||
if (cs.max_jerk[X_AXIS] > DEFAULT_XJERK) cs.max_jerk[X_AXIS] = DEFAULT_XJERK;
|
||||
if (cs.max_jerk[Y_AXIS] > DEFAULT_YJERK) cs.max_jerk[Y_AXIS] = DEFAULT_YJERK;
|
||||
calculate_extruder_multipliers();
|
||||
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ typedef struct
|
|||
float minimumfeedrate;
|
||||
float mintravelfeedrate;
|
||||
unsigned long minsegmenttime;
|
||||
float max_jerk[4];
|
||||
float max_jerk[4]; //!< Jerk is a maximum immediate velocity change.
|
||||
float add_homing[3];
|
||||
float zprobe_zoffset;
|
||||
float Kp;
|
||||
|
|
|
@ -5700,7 +5700,7 @@ Sigma_Exit:
|
|||
float value = code_value();
|
||||
if(value < 20.0) {
|
||||
float factor = cs.axis_steps_per_unit[i] / value; // increase e constants if M92 E14 is given for netfab.
|
||||
max_jerk[E_AXIS] *= factor;
|
||||
cs.max_jerk[E_AXIS] *= factor;
|
||||
max_feedrate[i] *= factor;
|
||||
axis_steps_per_sqr_second[i] *= factor;
|
||||
}
|
||||
|
@ -5964,12 +5964,12 @@ Sigma_Exit:
|
|||
if(code_seen('S')) cs.minimumfeedrate = code_value();
|
||||
if(code_seen('T')) cs.mintravelfeedrate = code_value();
|
||||
if(code_seen('B')) cs.minsegmenttime = code_value() ;
|
||||
if(code_seen('X')) max_jerk[X_AXIS] = max_jerk[Y_AXIS] = code_value();
|
||||
if(code_seen('Y')) max_jerk[Y_AXIS] = code_value();
|
||||
if(code_seen('Z')) max_jerk[Z_AXIS] = code_value();
|
||||
if(code_seen('E')) max_jerk[E_AXIS] = code_value();
|
||||
if (max_jerk[X_AXIS] > DEFAULT_XJERK) max_jerk[X_AXIS] = DEFAULT_XJERK;
|
||||
if (max_jerk[Y_AXIS] > DEFAULT_YJERK) max_jerk[Y_AXIS] = DEFAULT_YJERK;
|
||||
if(code_seen('X')) cs.max_jerk[X_AXIS] = cs.max_jerk[Y_AXIS] = code_value();
|
||||
if(code_seen('Y')) cs.max_jerk[Y_AXIS] = code_value();
|
||||
if(code_seen('Z')) cs.max_jerk[Z_AXIS] = code_value();
|
||||
if(code_seen('E')) cs.max_jerk[E_AXIS] = code_value();
|
||||
if (cs.max_jerk[X_AXIS] > DEFAULT_XJERK) cs.max_jerk[X_AXIS] = DEFAULT_XJERK;
|
||||
if (cs.max_jerk[Y_AXIS] > DEFAULT_YJERK) cs.max_jerk[Y_AXIS] = DEFAULT_YJERK;
|
||||
}
|
||||
break;
|
||||
case 206: // M206 additional homing offset
|
||||
|
|
|
@ -80,9 +80,6 @@ float* max_feedrate = cs.max_feedrate_normal;
|
|||
// Use M201 to override by software
|
||||
unsigned long max_acceleration_units_per_sq_second_silent[NUM_AXIS];
|
||||
unsigned long* max_acceleration_units_per_sq_second = cs.max_acceleration_units_per_sq_second_normal;
|
||||
|
||||
// Jerk is a maximum immediate velocity change.
|
||||
float max_jerk[NUM_AXIS];
|
||||
unsigned long axis_steps_per_sqr_second[NUM_AXIS];
|
||||
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
|
@ -1042,20 +1039,20 @@ Having the real displacement of the head, we can calculate the total movement le
|
|||
bool limited = false;
|
||||
for (uint8_t axis = 0; axis < 4; ++ axis) {
|
||||
float jerk = fabs(current_speed[axis]);
|
||||
if (jerk > max_jerk[axis]) {
|
||||
if (jerk > cs.max_jerk[axis]) {
|
||||
// The actual jerk is lower, if it has been limited by the XY jerk.
|
||||
if (limited) {
|
||||
// Spare one division by a following gymnastics:
|
||||
// Instead of jerk *= safe_speed / block->nominal_speed,
|
||||
// multiply max_jerk[axis] by the divisor.
|
||||
jerk *= safe_speed;
|
||||
float mjerk = max_jerk[axis] * block->nominal_speed;
|
||||
float mjerk = cs.max_jerk[axis] * block->nominal_speed;
|
||||
if (jerk > mjerk) {
|
||||
safe_speed *= mjerk / jerk;
|
||||
limited = true;
|
||||
}
|
||||
} else {
|
||||
safe_speed = max_jerk[axis];
|
||||
safe_speed = cs.max_jerk[axis];
|
||||
limited = true;
|
||||
}
|
||||
}
|
||||
|
@ -1108,8 +1105,8 @@ Having the real displacement of the head, we can calculate the total movement le
|
|||
(v_entry - v_exit) :
|
||||
// axis reversal
|
||||
max(- v_exit, v_entry));
|
||||
if (jerk > max_jerk[axis]) {
|
||||
v_factor *= max_jerk[axis] / jerk;
|
||||
if (jerk > cs.max_jerk[axis]) {
|
||||
v_factor *= cs.max_jerk[axis] / jerk;
|
||||
limited = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -166,9 +166,6 @@ extern float* max_feedrate;
|
|||
// Use M201 to override by software
|
||||
extern unsigned long max_acceleration_units_per_sq_second_silent[NUM_AXIS];
|
||||
extern unsigned long* max_acceleration_units_per_sq_second;
|
||||
|
||||
// Jerk is a maximum immediate velocity change.
|
||||
extern float max_jerk[NUM_AXIS];
|
||||
extern unsigned long axis_steps_per_sqr_second[NUM_AXIS];
|
||||
|
||||
extern long position[NUM_AXIS];
|
||||
|
|
Loading…
Reference in a new issue