使用F28035,CCS5.2,现在想使用CLA来进行ADC采样,并将采样的数据进行滤波,最后供CPU使用,
ADC采样初始化函数放在CPU里面进行,在CLA里面进行ADC采样,在调试过程中发现一直在等待采样结束( 即一直在该调语句:while(AdcRegs.ADCINTFLG.bit.ADCINT1 == 0){} //Wait for ADCINT1),我先咨询下是不是直接在CLA里面进行ADC采样是有问题的?
.cla代码如下:
__interrupt void Cla1Task1 ( void )
{
//Preprocessing
__mdebugstop();
EPwm2Regs.TBPRD = 6000; // Set timer period
//Force start of conversion on SOC0 and SOC1
AdcRegs.ADCSOCFRC1.all = 0x03;
//Wait for end of conversion.
while(AdcRegs.ADCINTFLG.bit.ADCINT1 == 0){} //Wait for ADCINT1
AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; //Clear ADCINT1
__mdebugstop();
//Get temp sensor sample result from SOC1
fResult = AdcResult.ADCRESULT1;
}
Mak he:
补充:是不是CLA里面不能操作ADC相关寄存器,只能操作ADC结果寄存器?
使用F28035,CCS5.2,现在想使用CLA来进行ADC采样,并将采样的数据进行滤波,最后供CPU使用,
ADC采样初始化函数放在CPU里面进行,在CLA里面进行ADC采样,在调试过程中发现一直在等待采样结束( 即一直在该调语句:while(AdcRegs.ADCINTFLG.bit.ADCINT1 == 0){} //Wait for ADCINT1),我先咨询下是不是直接在CLA里面进行ADC采样是有问题的?
.cla代码如下:
__interrupt void Cla1Task1 ( void )
{
//Preprocessing
__mdebugstop();
EPwm2Regs.TBPRD = 6000; // Set timer period
//Force start of conversion on SOC0 and SOC1
AdcRegs.ADCSOCFRC1.all = 0x03;
//Wait for end of conversion.
while(AdcRegs.ADCINTFLG.bit.ADCINT1 == 0){} //Wait for ADCINT1
AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; //Clear ADCINT1
__mdebugstop();
//Get temp sensor sample result from SOC1
fResult = AdcResult.ADCRESULT1;
}
Hanxiang Wang:
回复 Mak he:
你好,请问你这个问题解决了吗?