我采用TI的hvkit_rev1p1的平台,控制器是28027F
程序中在 mainISR(void)中有如下闪灯程序
HAL_toggleLed(halHandle,(GPIO_Number_e)HAL_Gpio_LED2);
该中断应该是PWM触发ADC采集,ADC采集后触犯该中断,正常时该灯应闪烁。
出现如下两个问题:
A、在跑高功率时突然出现电机自动停止,而且该灯停止闪烁,重新上电后又正常。
B、如果特意不加母线电压(其它低压部分上电,高压不上电)情况时,该灯也是闪烁一会就会自动停止。
自己判断:
1、应该是程序判断到异常(比如B中母线电压不正常),关闭了PWM,进而导致ADC停止采集,也就没有继续触发 mainISR(void)中断,也就没有运行电机。
2、经过在程序中添加灯检测等手段,没有发现任何故障状态,主程序一直正常在跑。
现问问各位,TI程序中判断此类异常的代码在什么地方?是怎么个判断方法,谢谢大家!
Eric Ma:
"
程序中在 mainISR(void)中有如下闪灯程序
HAL_toggleLed(halHandle,(GPIO_Number_e)HAL_Gpio_LED2);
该中断应该是PWM触发ADC采集,ADC采集后触犯该中断,正常时该灯应闪烁。
出现如下两个问题:
A、在跑高功率时突然出现电机自动停止,而且该灯停止闪烁,重新上电后又正常。
B、如果特意不加母线电压(其它低压部分上电,高压不上电)情况时,该灯也是闪烁一会就会自动停止。"
ERIC:
如你所说,LED闪烁是在主中断里面去做的。灯停止,那就是中断没有执行。
有可能是跑到非法中断去了。不知是否是你加了什么代码的缘故。
另外,你的可以带仿真器跑,当灯停止的时候,你暂停仿真器看看跑在哪里。
我采用TI的hvkit_rev1p1的平台,控制器是28027F
程序中在 mainISR(void)中有如下闪灯程序
HAL_toggleLed(halHandle,(GPIO_Number_e)HAL_Gpio_LED2);
该中断应该是PWM触发ADC采集,ADC采集后触犯该中断,正常时该灯应闪烁。
出现如下两个问题:
A、在跑高功率时突然出现电机自动停止,而且该灯停止闪烁,重新上电后又正常。
B、如果特意不加母线电压(其它低压部分上电,高压不上电)情况时,该灯也是闪烁一会就会自动停止。
自己判断:
1、应该是程序判断到异常(比如B中母线电压不正常),关闭了PWM,进而导致ADC停止采集,也就没有继续触发 mainISR(void)中断,也就没有运行电机。
2、经过在程序中添加灯检测等手段,没有发现任何故障状态,主程序一直正常在跑。
现问问各位,TI程序中判断此类异常的代码在什么地方?是怎么个判断方法,谢谢大家!
user1440843:
回复 Eric Ma:
非常感谢ERIC的回复,按照你的思路,我完全采用motorware的原始程序来实验,实验结果如下:
1、采用motorware_1_01_00_16的hvkit_rev1p1的lab10程序,当不提供母线电压时,灯过一会就会停止闪烁。
2、采用motorware_1_01_00_18的hvkit_rev1p1的lab10程序,即使不提供母线电压,灯仍然会一直闪烁。
此实验我持续实验了不下10次,确实有如下现象,不太明白16和18版本有什么区别?