From 949ad66124e637b7d4d685290ecc0685e761447c Mon Sep 17 00:00:00 2001 From: Paul Guenette Date: Sat, 25 May 2019 18:07:02 +0200 Subject: [PATCH] Fix anticogging_calibration where cpr != 3600 --- Firmware/MotorControl/controller.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Firmware/MotorControl/controller.cpp b/Firmware/MotorControl/controller.cpp index f844ed9c..47610e4a 100644 --- a/Firmware/MotorControl/controller.cpp +++ b/Firmware/MotorControl/controller.cpp @@ -81,7 +81,8 @@ bool Controller::home_axis() { */ bool Controller::anticogging_calibration(float pos_estimate, float vel_estimate) { if (config_.anticogging.calib_anticogging) { - float pos_err = config_.anticogging.index - pos_estimate; + config_.anticogging.anticogging_valid = false; + float pos_err = input_pos_ - pos_estimate; if (fabsf(pos_err) <= config_.anticogging.calib_pos_threshold && fabsf(vel_estimate) < config_.anticogging.calib_vel_threshold) { config_.anticogging.cogging_map[std::clamp(config_.anticogging.index++, 0, 3600)] = vel_integrator_current_;