|
int read_adc(int ch)
{
// 使能预分频功能,设置A/D转换器的时钟 = PCLK/(65+1)
TSADCCON0 = (1<<16)|(1 << 14) | (65 << 6);
// 清除位[2],设为普通转换模式,禁止read start
TSADCCON0 &= ~((1<<2)|(1<<1));
// 选择通道
ADCMUX = 1; //ch
// 设置位[0]为1,启动A/D转换
TSADCCON0 |= (1 << 0);
// 当A/D转换真正开始时,位[0]会自动清0
while (TSADCCON0 & (1 << 0));
// 检测位[15],当它为1时表示转换结束
while (!(TSADCCON0 & (1 << 15)) );
// 读取数据
return (TSDATX0 & 0xfff);
}
void adc_test(void)
{
printf("\r\n##################adc test################\r\n");
while(1)
{
printf("adc = %d\r\n",read_adc(1));
delay(0x100000);
}
}
请教天嵌工程师,按210手册和TQ210开发板原理图配置好后,一直没有数据显示,不知道那里配置不对,还是你们开发板有什么地方需要特点配置才能工作,在read_adc里debug发现while (TSADCCON0 & (1 << 0));一直退不出来,说明ADC转换没有启动。然后我用你们自带的ADC测试程序是可以测试,并且改变可调电阻AIN1的值能正常变化,说明硬件应该没问题。期待回复,谢谢。
|
|