Fix anticogging_calibration where cpr != 3600

This commit is contained in:
Paul Guenette
2019-05-25 18:07:02 +02:00
parent 5a812701a3
commit 949ad66124
+2 -1
View File
@@ -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<uint32_t>(config_.anticogging.index++, 0, 3600)] = vel_integrator_current_;