专家您好:
我用的是F28035芯片。
现在用PWM2去触发中断以及AD采样,
在中断服务程序的中间和结尾都用数组去收集AdcResult.ADCRESULT2的值,
发现读出来的AD值不一样。
我之前的理解是:
在一个中断服务程序中,AD结果寄存器保存的转换值应该是不变的。因为没有其他的事件去触发SOC。
但从实验结果来看,理解好像是错的。
请专家指正
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.
专家您好:
我用的是F28035芯片。
现在用PWM2去触发中断以及AD采样,
在中断服务程序的中间和结尾都用数组去收集AdcResult.ADCRESULT2的值,
发现读出来的AD值不一样。
我之前的理解是:
在一个中断服务程序中,AD结果寄存器保存的转换值应该是不变的。因为没有其他的事件去触发SOC。
但从实验结果来看,理解好像是错的。
请专家指正
我配置的AD触发源都是PWM2
AdcRegs.ADCSOC1CTL.bit.ACQPS=6;//采样窗口
AdcRegs.ADCSOC0CTL.bit.TRIGSEL=7;//触发源-PWM2-SOCA
AdcRegs.ADCSOC2CTL.bit.CHSEL=2;//采样通道ADCINA2---ADCRESULT2
我主要是验证
在AD转换完之后,主CPU和CLA的采样结果应该一样的,但是测试结果并不一样,不理解。
我配置成CLA中断是发生在主CPU 中断之后。
谢谢
AdcRegs.ADCSOC1CTL.bit.ACQPS=6;//采样窗口
AdcRegs.ADCSOC0CTL.bit.TRIGSEL=7;//触发源-PWM2-SOCA
AdcRegs.ADCSOC2CTL.bit.CHSEL=2;//采样通道ADCINA2---ADCRESULT2
AdcRegs.ADCSOC1CTL.bit.ACQPS=6;//采样窗口
你没发现,配置中是SOC1CTL,是1 不是2
AdcRegs.ADCSOC0CTL.bit.TRIGSEL=7;//触发源-PWM2-SOCA
SOC0CTL,是0不是2
这几个要统一,如果是Result2, 就是SOC2,上面3个配置都是SOC2
不好意思,我拷错了。
//SOC2
AdcRegs.ADCSOC2CTL.bit.ACQPS=6;//采样窗口
AdcRegs.ADCSOC2CTL.bit.CHSEL=2;//采样通道ADCINA2---ADCRESULT2----A相电压N
AdcRegs.ADCSOC2CTL.bit.TRIGSEL=7;//触发源-PWM2-SOCA
SOC2的触发源是PWM2,通道配置AD2,
然后CLA和主CPU的AD值不一样。
怎么又出现CLA了?
是CLA和主CPU都在采样么?
如果这样的话,肯定不同啊,两次采样时间不同么,好像论坛还有一个帖子也是这方面的事情。