This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F2809: EPWM切换PRD和CMPA后,通过SOCA触发的ADC不能进入中断?

Part Number: TMS320F2809

问题:下面代码的配置是否不正确?

操作:在程序运行过程中,修改了EPwm5Regs.TBPRD、EPwm5Regs.CMPA.half.CMPA、EPwm5Regs.TBPHS.half.TBPHS

现象:通过SOCA启动的ADC不再进入中断ISR

Fullscreen
1
2
3
4
5
6
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1; // SOCAPWMSEQ1
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; // 使SEQ1
EPwm5Regs.ETSEL.bit.SOCAEN = 1; // Enable SOC on A group
EPwm5Regs.ETSEL.bit.SOCASEL = ET_CTRU_CMPA; // TBCTR==CMPA沿
EPwm5Regs.ETPS.bit.SOCAPRD = 1; // 1ADC
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 有两个可能:

    1、PWM中断的优先级本身就高于ADC,如果中断频率太高,可能会导致ADC中断无法正常响应。

    2、得看一下你修改的3个寄存器值是多少,会不会有冲突。比如最简单的CMPA的值大于TBPRD的话就没办法触发中断。

x 出现错误。请重试或与管理员联系。