Update backlash code
This commit is contained in:
@@ -20,11 +20,13 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "../Marlin.h"
|
||||
#include "../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
|
||||
#include "backlash.h"
|
||||
|
||||
#include "../module/motion.h"
|
||||
#include "../module/planner.h"
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
@@ -75,10 +77,10 @@ void Backlash::add_correction_steps(const int32_t &da, const int32_t &db, const
|
||||
// to segments where there is no direction change.
|
||||
static int32_t residual_error[XYZ] = { 0 };
|
||||
#else
|
||||
// No leftover residual error from segment to segment
|
||||
int32_t residual_error[XYZ] = { 0 };
|
||||
// No direction change, no correction.
|
||||
if (!changed_dir) return;
|
||||
// No leftover residual error from segment to segment
|
||||
int32_t residual_error[XYZ] = { 0 };
|
||||
#endif
|
||||
|
||||
const float f_corr = float(correction) / 255.0f;
|
||||
@@ -100,7 +102,7 @@ void Backlash::add_correction_steps(const int32_t &da, const int32_t &db, const
|
||||
if (reversing == (error_correction < 0)) {
|
||||
if (segment_proportion == 0)
|
||||
segment_proportion = MIN(1.0f, block->millimeters / smoothing_mm);
|
||||
error_correction = ceil(segment_proportion * error_correction);
|
||||
error_correction = CEIL(segment_proportion * error_correction);
|
||||
}
|
||||
else
|
||||
error_correction = 0; // Don't take up any backlash in this segment, as it would subtract steps
|
||||
|
||||
Reference in New Issue
Block a user