Browse Source

Fix broken jerk handling (#12019)

Fix #12004
Thomas Moore 6 years ago
parent
commit
49823a4939
1 changed files with 7 additions and 5 deletions
  1. 7
    5
      Marlin/src/module/planner.cpp

+ 7
- 5
Marlin/src/module/planner.cpp View File

2087
     #if ENABLED(MIXING_EXTRUDER)
2087
     #if ENABLED(MIXING_EXTRUDER)
2088
       float delta_mm_i = 0;
2088
       float delta_mm_i = 0;
2089
       if (i == E_AXIS) {
2089
       if (i == E_AXIS) {
2090
-        for (uint8_t s = 0; s < MIXING_STEPPERS; s++)
2091
-          delta_mm_i = MAX(mixing_factor[s] * ABS(delta_mm[i]), delta_mm_i);
2090
+        for (uint8_t s = 0; s < MIXING_STEPPERS; s++) {
2091
+          const float delta_mm_s = mixing_factor[s] * delta_mm[i];
2092
+          if (ABS(delta_mm_s) > ABS(delta_mm_i)) delta_mm_i = delta_mm_s;
2093
+        }
2092
       }
2094
       }
2093
-      else delta_mm_i = ABS(delta_mm[i]);
2095
+      else delta_mm_i = delta_mm[i];
2094
     #else
2096
     #else
2095
-      const float delta_mm_i = ABS(delta_mm[i]);
2097
+      const float delta_mm_i = delta_mm[i];
2096
     #endif
2098
     #endif
2097
-    const float cs = current_speed[i] = delta_mm_i * inverse_secs;
2099
+    const float cs = ABS(current_speed[i] = delta_mm_i * inverse_secs);
2098
     #if ENABLED(DISTINCT_E_FACTORS)
2100
     #if ENABLED(DISTINCT_E_FACTORS)
2099
       if (i == E_AXIS) i += extruder;
2101
       if (i == E_AXIS) i += extruder;
2100
     #endif
2102
     #endif

Loading…
Cancel
Save