工具/软件:Code Composer Studio
您好!
我在项目中使用 TMS320F280045、但遇到了 ADC ISR 中的一个奇怪问题。 如果我在退出 ADC ISR 之前使用代码- 1、ADC ISR 将在一段时间内不再运行。 当我使用代码-2时,它可以避免此问题并继续运行,但我无法理解原因是什么。
- 代码- 1.
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;
PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;
asm ("NOP");
EINT;
- 代码- 2.
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//需要向寄存器写入两次以避免 ADC ISR 丢失
PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;
asm ("NOP");
EINT;
在上面的情况下、ADCINTFLG = 0x0001、ADCINTOVF = 0x0001;即使我作为代码- 3写入来清除溢出标志、它仍然失败。
- 代码- 3.
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;
AdcaRegs.ADCINTOVFCLR.bit.ADCINT1 = 1;
PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;
asm ("NOP");
EINT;
谢谢
陈兰