diff options
author | David Crocker <dcrocker@eschertech.com> | 2021-02-24 17:16:48 +0300 |
---|---|---|
committer | David Crocker <dcrocker@eschertech.com> | 2021-02-24 17:16:48 +0300 |
commit | 9fb2d84da13d4a156e2f1f1116e544ca2375c4cc (patch) | |
tree | 2159fdc409ea1aa10aa88f69ceda2f8ea455cdf0 /src/Movement | |
parent | e0cd21a4b9f1259f3d8d61056ec36e04ccef916c (diff) |
Fix for Cartesian moves with no steady speed phase
Diffstat (limited to 'src/Movement')
-rw-r--r-- | src/Movement/DriveMovement.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/Movement/DriveMovement.cpp b/src/Movement/DriveMovement.cpp index b4a9d1dd..66f2133b 100644 --- a/src/Movement/DriveMovement.cpp +++ b/src/Movement/DriveMovement.cpp @@ -581,7 +581,9 @@ pre(nextStep < totalSteps; stepsTillRecalc == 0) const uint32_t stepsToLimit = mp.cart.accelStopStep - nextStep; if (stepsToLimit == 1) { - state = DMState::steady; + state = (mp.cart.decelStartStep > mp.cart.accelStopStep) ? DMState::steady + : (reverseStartStep > mp.cart.accelStopStep) ? DMState::decel0 + : DMState::reverse; } else if (stepInterval < DDA::MinCalcIntervalCartesian) { @@ -617,7 +619,8 @@ pre(nextStep < totalSteps; stepsTillRecalc == 0) const uint32_t stepsToLimit = mp.cart.decelStartStep - nextStep; if (stepsToLimit == 1) { - state = DMState::decel0; + state = (reverseStartStep > mp.cart.decelStartStep) ? DMState::decel0 + : DMState::reverse; } else if (stepInterval < DDA::MinCalcIntervalCartesian) { |