[技术问答] 诡异现象求助:AC78013 PWM1溢出中断无法触发

[复制链接]
2792|10
 楼主| 重庆酱油仔 发表于 2022-3-17 10:00 | 显示全部楼层 |阅读模式
AD, AC
MUC:AC78013FDLA。现象描述:PWM1做PWM波,计数器使用UP-Down模式.设置CNTOF中断。中断使能位正常。
异常的现象:计数器可以正常启动,但是无法做到CNTOF置位 (只在PWM中断中加断点,无法进入,中断中的引脚翻转函数无响应).用断点调试以后,发现在其他任何位置断点,再次启动,就能够置位,并进入中断了。

感觉现象比较诡异,目前不知道如何解决.
wangjj19950516 发表于 2022-3-17 18:14 | 显示全部楼层
在中断回调函数里是不是读寄存器判断溢出的?如果是这样,那就有问题,因为寄存器里的溢出标志在库里面的中断里已经清掉了,所以怎么样都不会进判断条件,可以读中断回调函数的参数来判断
 楼主| 重庆酱油仔 发表于 2022-3-18 11:24 | 显示全部楼层
  1. void BLDC_PWM_FaultCallback(void *device, uint32_t wpara, uint32_t lpara)
  2. {
  3.     if (PWM_GetOverflowFlag(PWM1))
  4.     {
  5. #ifdef USE_USER_ADC_DRIVER               
  6.                 PWM_CNTOF_CallBack();
  7. //                PWM_ClrOverFlowFlag(PWM1);
  8. #endif               
  9. //        PWM_ClrOverFlowFlag(PWM1);
  10.     }
  11.     if (PWM_GetFaultChannelFlag(PWM1, (uint16_t)PWM_FAULT_CH_1))
  12.     {
  13.         g_mcStatus = FAULT;
  14.         g_bldc_protector.faultFlag.bits.hwFault = 1;
  15.         PWM_ClearFaultChannelFlag(PWM1, (uint16_t)PWM_FAULT_CH_1);
  16.     }
  17. }


是在中断后的回调函数中读的CNTOF的标识位.
海滨消消 发表于 2022-4-2 15:43 来自手机 | 显示全部楼层
这种现象的确有点诡异啊
tpgf 发表于 2022-4-2 17:18 | 显示全部楼层
是不是没有使能啊
wakayi 发表于 2022-4-2 17:30 | 显示全部楼层
怀疑是软件的问题 重新启动一下
wowu 发表于 2022-4-2 17:38 | 显示全部楼层
单步调试进步了断点吗
renzheshengui 发表于 2022-4-2 17:43 | 显示全部楼层
是不是进入中断后自己就清零了啊
xiaoqizi 发表于 2022-4-2 17:54 | 显示全部楼层
弱点的问题都很诡异
木木guainv 发表于 2022-4-2 18:01 | 显示全部楼层
估计是启动区域的问题
wangjj19950516 发表于 2022-4-2 18:01 | 显示全部楼层
重庆酱油仔 发表于 2022-3-18 11:24
是在中断后的回调函数中读的CNTOF的标识位.

是因为中断标志位已经在库里面的中断处理函数中清掉了,你这里在中断回调函数里不能读寄存器判断,用下面这种方式就可以了。 WeChat Image_20220402175935.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

55

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部