您好!
我修改了 具有外部节气门开关的 USAL_MOTORCONTROL_Lab_f28002x 项目以控制 IsSet_A 进行电流控制、禁用速度控制 、令人奇怪的是 、每次上电复位后应用节气门(IsSet_A >0)前几次没有响应、因为 MOTORState 保持在 MOTOR_CL_RUNNING 上。
查看下面的调试屏幕截图
0:02秒-节气门启动操作、IsSet_A > 0、motorState 在 MOTOR_CL_RUNNING 处停止、SPEED_Hz 保持为零、无故障
0:05秒-再次节气门动作、发生了同样的事情、SPEED_Hz 保持为零
0:14秒-再次节气门动作、这次 motorState 可达到 MOTOR_CTRL_RUN、SPEED_Hz 增加
e2e.ti.com/.../video_2D00_01.mov
下面的视频显示了电机响应...
e2e.ti.com/.../video_2D00_02.mov
我还尝试了不同的值、甚至删除了 fwcTimeDelay、以查看 CL_runing 是否可以立即更改为 MOTOR_CTRL_run、但运气不好!
if(obj->motorState == MOTOR_CL_RUNNING)
{
obj->stateRunTimeCnt++;
if(obj->stateRunTimeCnt == obj->fwcTimeDelay) /* 2.0s */
{
obj->Idq_out_A.value[0] = 0.0f;
obj->motorState = MOTOR_CTRL_RUN;
}
}
编辑: 2024年02月29日 PM 10:34
我刚刚发现、当 obj->flagEnableRsRecalc 设置为 true 时、将发生上述 motorState 响应、如果设置为 false、则上电重启、 然后应用油门(IsSet_A > 0)、motorState 可一直到 MOTOR_CTRL_run 。
因此、想要知道 flagEnableRsRecalc 导致该中断的原因是什么以及如何防止它?
丹尼
