大家好:
我在使用cc3200 adc功能的时候遇见了一些问题,希望可以得到大家的帮助。使用官方的例程我的引脚没有接任何器件得出的结果是:
1.请问下上面的结果是属于正常的吗?
下面的是我在demo的基础上更改的: 我在PIN_60 引脚接的是光线传感器(文档上说PIN_60使用的是通道3),可yi发现将传感器放到不同的位置采集到的数据有很大
的变化,可是接在pin_57 pin_58引脚上却没有效果
void
PinMuxConfig(void)
{
MAP_PRCMPeripheralClkEnable(PRCM_UARTA0,PRCM_RUN_MODE_CLK);
MAP_PRCMPeripheralClkEnable(PRCM_ADC, PRCM_RUN_MODE_CLK);
//UART0_TX
MAP_PinTypeUART(PIN_07, PIN_MODE_5);
//UART0_RX
MAP_PinTypeUART(PIN_08, PIN_MODE_5);
}
void
main()
{
unsigned long uiAdcInputPin = PIN_60;
unsigned int uiChannel;
unsigned int uiIndex=0;
unsigned long ulSample;
BoardInit();
PinMuxConfig();
InitTerm();
DisplayBanner(APP_NAME);
while(FOREVER)
{
uiIndex=0;
#ifdef CC3200_ES_1_2_1
//
// Enable ADC clocks.###IMPORTANT###Need to be removed for PG 1.32
//
HWREG(GPRCM_BASE + GPRCM_O_ADC_CLK_CONFIG) = 0x00000043;
HWREG(ADC_BASE + ADC_O_ADC_CTRL) = 0x00000004;
HWREG(ADC_BASE + ADC_O_ADC_SPARE0) = 0x00000100;
HWREG(ADC_BASE + ADC_O_ADC_SPARE1) = 0x0355AA00;
#endif
MAP_PinTypeADC(uiAdcInputPin,PIN_MODE_255);
switch(uiAdcInputPin)
{
case PIN_57:
uiChannel = ADC_CH_0;
break;
case PIN_58:
uiChannel = ADC_CH_1;
break;
case PIN_59:
uiChannel = ADC_CH_2;
break;
case PIN_60:
uiChannel = ADC_CH_3;//0x18 24
break;
default:
break;
}
MAP_ADCTimerConfig(ADC_BASE,2^17);
MAP_ADCTimerEnable(ADC_BASE);
MAP_ADCEnable(ADC_BASE);
MAP_ADCChannelEnable(ADC_BASE, uiChannel);
while(1){
while(uiIndex < NO_OF_SAMPLES)
{
if(MAP_ADCFIFOLvlGet(ADC_BASE, uiChannel))
{
ulSample = MAP_ADCFIFORead(ADC_BASE, uiChannel);
***[uiIndex] = ulSample;
uiIndex++;
}
}
uiIndex = 0;
while(uiIndex < NO_OF_SAMPLES)
{
UART_PRINT("\n\r%d %14ld\n\r",uiIndex,(***[uiIndex] >> 2 ) & 0x0FFF);
uiIndex++;
}
uiIndex = 0;
UART_PRINT("\n\r");
}
}
}
上面两幅图是pin_60 接传感器结果
如果有知道请告诉我一下 谢谢。

