Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Crocker <dcrocker@eschertech.com>2021-02-24 17:16:48 +0300
committerDavid Crocker <dcrocker@eschertech.com>2021-02-24 17:16:48 +0300
commit9fb2d84da13d4a156e2f1f1116e544ca2375c4cc (patch)
tree2159fdc409ea1aa10aa88f69ceda2f8ea455cdf0 /src/Movement
parente0cd21a4b9f1259f3d8d61056ec36e04ccef916c (diff)
Fix for Cartesian moves with no steady speed phase
Diffstat (limited to 'src/Movement')
-rw-r--r--src/Movement/DriveMovement.cpp7
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)
{