From af024e1d7c0a643c38ab7c53f4929a2b43e6d95b Mon Sep 17 00:00:00 2001
From: Scott Lahteine <sourcetree@thinkyhead.com>
Date: Thu, 8 Dec 2016 22:50:25 -0800
Subject: [PATCH] Pretty up coast / reverse jerk code
---
Marlin/planner.cpp | 21 +++++++--------------
1 file changed, 7 insertions(+), 14 deletions(-)
diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp
index b405e0d52f..68aeac99a5 100644
--- a/Marlin/planner.cpp
+++ b/Marlin/planner.cpp
@@ -1242,22 +1242,15 @@ void Planner::_buffer_line(const float &a, const float &b, const float &c, const
v_entry *= v_factor;
}
// Calculate jerk depending on whether the axis is coasting in the same direction or reversing.
- float jerk =
- (v_exit > v_entry) ?
- ((v_entry > 0.f || v_exit < 0.f) ?
- // coasting
- (v_exit - v_entry) :
- // axis reversal
- max(v_exit, -v_entry)) :
- // v_exit <= v_entry
- ((v_entry < 0.f || v_exit > 0.f) ?
- // coasting
- (v_entry - v_exit) :
- // axis reversal
- max(-v_exit, v_entry));
+ const float jerk = (v_exit > v_entry)
+ ? // coasting axis reversal
+ ( (v_entry > 0.f || v_exit < 0.f) ? (v_exit - v_entry) : max(v_exit, -v_entry) )
+ : // v_exit <= v_entry coasting axis reversal
+ ( (v_entry < 0.f || v_exit > 0.f) ? (v_entry - v_exit) : max(-v_exit, v_entry) );
+
if (jerk > max_jerk[axis]) {
v_factor *= max_jerk[axis] / jerk;
- limited = true;
+ ++limited;
}
}
if (limited) vmax_junction *= v_factor;
--
GitLab