Make max_e_jerk an array to reduce CPU usage (#11118)
This commit is contained in:
committed by
Scott Lahteine
parent
d13f76b7da
commit
3b3029c4bf
@ -210,7 +210,11 @@ class Planner {
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
static float junction_deviation_mm; // (mm) M205 J
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
static float max_e_jerk_factor; // Calculated from junction_deviation_mm
|
||||
#if ENABLED(DISTINCT_E_FACTORS)
|
||||
static float max_e_jerk[EXTRUDERS]; // Calculated from junction_deviation_mm
|
||||
#else
|
||||
static float max_e_jerk;
|
||||
#endif
|
||||
#endif
|
||||
#else
|
||||
static float max_jerk[XYZE]; // (mm/s^2) M205 XYZE - The largest speed change requiring no acceleration.
|
||||
@ -750,9 +754,15 @@ class Planner {
|
||||
#endif
|
||||
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
FORCE_INLINE static void recalculate_max_e_jerk_factor() {
|
||||
FORCE_INLINE static void recalculate_max_e_jerk() {
|
||||
#define GET_MAX_E_JERK(N) SQRT(SQRT(0.5) * junction_deviation_mm * (N) * RECIPROCAL(1.0 - SQRT(0.5)))
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
max_e_jerk_factor = SQRT(SQRT(0.5) * junction_deviation_mm * RECIPROCAL(1.0 - SQRT(0.5)));
|
||||
#if ENABLED(DISTINCT_E_FACTORS)
|
||||
for (uint8_t i = 0; i < EXTRUDERS; i++)
|
||||
max_e_jerk[i] = GET_MAX_E_JERK(max_acceleration_mm_per_s2[E_AXIS + i]);
|
||||
#else
|
||||
max_e_jerk = GET_MAX_E_JERK(max_acceleration_mm_per_s2[E_AXIS]);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user