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.

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;

}