舵机板子的pid速度环没有放进去吗?

Author: zhangmiaomiao985Created Jun 12, 2025Updated Jun 12, 2025

motor.CalcDceOutput(motor.angle, 0);第二个参数应该是速度,但写的是0。 void Motor::UpdateVelocity()应该是速度函数,但并未调用。 是否可以调用然后更改为如下: void TIM14_PeriodElapsedCallback() { // Read sensor data LL_DMA_EnableChannel(DMA1,LL_DMA_CHANNEL_1);
LL_ADC_REG_StartConversion(ADC1);

motor.angle = motor.mechanicalAngleMin +
                (motor.mechanicalAngleMax - motor.mechanicalAngleMin) *
                ((float) adcData[0] - (float) motor.adcValAtAngleMin) /
                ((float) motor.adcValAtAngleMax - (float) motor.adcValAtAngleMin);
motor.UpdateVelocity();
motor.CalcDceOutput(motor.angle, motor.velocity);

motor.SetPwm((int16_t) motor.dce.output);

}