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

ADC在freertos中无法获取采样值

我们用adc3获取电池电压,我们调试是用的是NON_OS,但调通后,合入我们的工程,我们的工程使用的是free_rtos的,却无法获取正确电压。为什么相同的代码在NON_OS中可以获取到正确的电压值(1.33v左右),但在free_rtos中却无法获取到电压值(得到的值为0),请教ti的专家们,这是什么原因?代码如下:用adc3作为采样通道,NON_OS和free_rtos都使用的是下面的代码

float AdcBattVolt()
{
unsigned long AdcVolts[24];
unsigned int uiIndex=0;
float fTotal = 0;

MAP_PinTypeADC(PIN_60,PIN_MODE_255);
MAP_ADCTimerConfig(ADC_BASE,2^17);

MAP_ADCTimerEnable(ADC_BASE);

MAP_ADCEnable(ADC_BASE);

MAP_ADCChannelEnable(ADC_BASE, ADC_CH_3);

while(uiIndex < 24)
{
if(MAP_ADCFIFOLvlGet(ADC_BASE, ADC_CH_3))
{
AdcVolts[uiIndex++] = MAP_ADCFIFORead(ADC_BASE, ADC_CH_3);
}
}

MAP_ADCChannelDisable(ADC_BASE, ADC_CH_3);

for(uiIndex = 4; uiIndex < 24; uiIndex++)
{
fTotal += (((float)((AdcVolts[uiIndex] >> 2 ) & 0x0FFF))*1.4)/4096;
}

return fTotal/20;
}

david lv1:

而且我把sdk中的adc_demo例程改为free_rtos的,同样的不管是58,59还是60pin,输出的都是0.0000

da qin zheng sheng:

不用定时器可以测量不?

user5280615:

您好,请问解决了吗

赞(0)
未经允许不得转载:TI中文支持网 » ADC在freertos中无法获取采样值
分享到: 更多 (0)