From 677133d85b6e9b5b99c28debf0219087e563a42e Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Wed, 5 Aug 2020 11:54:39 -0700 Subject: [PATCH] fix incorrect step_cb --- Firmware/MotorControl/axis.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Firmware/MotorControl/axis.cpp b/Firmware/MotorControl/axis.cpp index 04a802c6..f5771cd2 100644 --- a/Firmware/MotorControl/axis.cpp +++ b/Firmware/MotorControl/axis.cpp @@ -118,10 +118,12 @@ bool Axis::wait_for_current_meas() { // step/direction interface void Axis::step_cb() { - const bool dir_pin = dir_port_->IDR & dir_pin_; - const int32_t dir = (-1 + 2 * dir_pin) * step_dir_active_; - controller_.input_pos_ += dir * config_.turns_per_step; - controller_.input_pos_updated(); + if (step_dir_active_) { + const bool dir_pin = (dir_port_->IDR & dir_pin_); + const float dir = dir_pin ? 1.0f : -1.0f; + controller_.input_pos_ += dir * config_.turns_per_step; + controller_.input_pos_updated(); + } }; void Axis::load_default_step_dir_pin_config(