| 
 | 
 
 
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的值能正常变化,说明硬件应该没问题。期待回复,谢谢。 
 |   
 
 
 
 |