|
target_pulse_count:1600 8微分 電機(jī)旋轉(zhuǎn)角1.8° 正常來(lái)說(shuō)1600應(yīng)該是一整圈.
1.設(shè)定TIM1 通道一輸出PWM占空比50%的脈沖.
2.在中斷這里計(jì)算當(dāng)前脈沖數(shù)值,達(dá)到目標(biāo)后停止電機(jī)使能,關(guān)閉PWM輸出 ,關(guān)閉定時(shí)器中斷.
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if (htim->Instance == TIM1) {
pulse_count++;
if (pulse_count >= target_pulse_count) { ;
MotorEnableCLOSE;
HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_1);
HAL_TIM_Base_Stop_IT(&htim1);
}
}
}
3.在循環(huán)任務(wù)里延時(shí)幾秒后 pulse_count清零,再開(kāi)啟電機(jī)使能,打開(kāi)PWM輸出,打開(kāi)定時(shí)器中斷.
實(shí)際上電機(jī)走個(gè)一二十圈就會(huì)有五六度的差異了.有大佬知道為什么嗎
|
|