TI中文支持网
TI专业的中文技术问题搜集分享网站

关于F28035里面使用CLA进行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;

}

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:

你好,请问你这个问题解决了吗?

赞(0)
未经允许不得转载:TI中文支持网 » 关于F28035里面使用CLA进行ADC采样问题?
分享到: 更多 (0)