写了一个ADC的裸机程序,烧入
开发板,发现不能用,一直在转换,而导致无法读取转换后的值下面标红色的那句一直在串口打印,PCLK=50MHZ
int ReadAdc()
{
/*开始AD转换*/
ADCCON |= 0x1;
Uart_SendString("ADC--startn");
while(ADCCON & 0x1);
/*检查转换是否结束*/
while(!(ADCCON & 0x8000))
Uart_SendString("A/D conversion in processn");
Uart_SendString("ADC--endn");
return ( (int)ADCDAT0 & 0x3ff );
}
下面我把ADC初始化代码也贴一下
void adc_init(void)
{
//选择输入通道,AIN0,对应开发板上W1可调电阻
int channel=0;
/*设置分频时钟*/
preScaler = ADC_FREQ;
preScaler = 50000000/ADC_FREQ - 1; //PCLK=50M
/*AD转换频率设置,最大频率为2.5MHz*/
ADCCON = (1<<14)|(preScaler<<6)|(channel<<3); //setup channel
delay(1000);
}
我索性把整个代码,贴一下吧,各位帮帮我吧。。。。。。。