TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F280049C: 关于中断一启用,程序就跑飞

Part Number:TMS320F280049C

检查寄存器配置

发现并没有太大的问题,而且我只配置了一次ECAP7

int32_t ecap_ticks = (int32_t) ((float32_t)(pwmSysClkFreq_Hz / pwmFreq_Hz));ECAP_enableAPWMMode(ECAP7_BASE);//使能ECAP在APWM模式下ECAP_setAPWMPeriod(ECAP7_BASE, ecap_ticks);//配置APWM周期ECAP_setAPWMCompare(ECAP7_BASE, ecap_ticks >> 1);//配置APWM计数器为周期值的一半ECAP_setAPWMShadowPeriod(ECAP7_BASE, ecap_ticks);//ECAP_setAPWMShadowCompare(ECAP7_BASE, ecap_ticks >> 1);ECAP_clearInterrupt(ECAP7_BASE, 0xFF);ECAP_clearGlobalInterrupt(ECAP7_BASE);ECAP_startCounter(ECAP7_BASE);ECAP_enableInterrupt(CLLLC_ISR2_ECAP_BASE, ECAP_ISR_SOURCE_COUNTER_PERIOD);Interrupt_register(CLLLC_ISR2_TRIG, &ISR2_PowerFlow);CLLLC_HAL_clearISR2InterruputFlag();Interrupt_enable(CLLLC_ISR2_TRIG);

调试期间我也换过ECAP1、ECAP2但情况还是一样,一旦使能该中断程序就跑飞,想问一下,这种情况有什么可以排查出问题出现的原因

user6327524:

中断周期是多久?中断函数的运行时间是不是过长了?

,

YingJed Ying:

中断运行的内容都被我屏蔽了,只剩下清空标志位,还是不行,我把中断频率改100000Hz还是不行

,

Green Deng:

看一下这个帖子,应该有所帮助:e2e.ti.com/…/tms320f280049c-extrnal-interrupt-triggering

,

YingJed Ying:

我使用的不是外部中断,而是把ECAP当成定时器一样记满就中断,而且跟示例一样先清除了标志位才使能的中断,在调试过程中我发现我的CLA和ECAP中断只能启动其中一个。

我CLA的启动源是ADCB1,ADCB1的中断源是ADCB-SOC0触发,而SOC0是由EPWM5触发的。

当CLA和ECAP两个都启动就会出现图中跑飞的情况,而且CLA不用启动到触发,只要调用配置内存的函数就会跑飞,但是我不启用ECAP中断时CLA的代码是没问题的

还是不太理解怎么解决

,

Green Deng:

你好,这个问题为你升级到英文E2E论坛了,还请留意论坛回复:e2e.ti.com/…/tms320f280049c-after-enabling-interrupts-the-program-enters-an-illegal-interrupt

,

Green Deng:

你好,英文j论坛工程师有一些疑问还需要你解答一下。

,

YingJed Ying:

 有这个文件的

,

Green Deng:

好的,已经反馈上去了

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F280049C: 关于中断一启用,程序就跑飞
分享到: 更多 (0)