diff --git a/Firmware/MotorControl/low_level.c b/Firmware/MotorControl/low_level.c index 6b6235da..42b99bca 100644 --- a/Firmware/MotorControl/low_level.c +++ b/Firmware/MotorControl/low_level.c @@ -1380,9 +1380,9 @@ void motor_thread(void const * argument) { motor->thread_ready = false; } - -void setEncoderCount(Motor_t* motor, uint16_t count){ +/** Function that sets the current encoder count to a desired 32-bit value. */ +void setEncoderCount(Motor_t* motor, uint32_t count){ motor->encoder.encoder_state = count; motor->motor_timer->Instance->CNT = count; - motor->encoder.pll_pos = count; + motor->encoder.pll_pos = (float)count; } \ No newline at end of file diff --git a/Firmware/MotorControl/low_level.h b/Firmware/MotorControl/low_level.h index 281465d1..6512a719 100644 --- a/Firmware/MotorControl/low_level.h +++ b/Firmware/MotorControl/low_level.h @@ -172,7 +172,7 @@ void step_cb(uint16_t GPIO_Pin); void pwm_trig_adc_cb(ADC_HandleTypeDef* hadc, bool injected); void vbus_sense_adc_cb(ADC_HandleTypeDef* hadc, bool injected); -void setEncoderCount(Motor_t* motor, uint16_t count); +void setEncoderCount(Motor_t* motor, uint32_t count); bool anti_cogging_calibration(Motor_t* motor);