我们用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:
您好,请问解决了吗