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.
问题:下面代码的配置是否不正确?
操作:在程序运行过程中,修改了EPwm5Regs.TBPRD、EPwm5Regs.CMPA.half.CMPA、EPwm5Regs.TBPHS.half.TBPHS
现象:通过SOCA启动的ADC不再进入中断ISR
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1; // 启用SOCA从PWM启动SEQ1 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; // 每发生1次事件,产生ADC启动信号
有两个可能:
1、PWM中断的优先级本身就高于ADC,如果中断频率太高,可能会导致ADC中断无法正常响应。
2、得看一下你修改的3个寄存器值是多少,会不会有冲突。比如最简单的CMPA的值大于TBPRD的话就没办法触发中断。