新唐单片机n76e003的ADC这么配置有什么问题吗?AD读出来是错的。
代码如下:
void ADC_Init(void)
{
P0M1 |= 0X28; //0010 1000 设置高阻输入(AIN4/AIN6)
P0M2 &= 0xD7; //1101 0111
AINDIDS = 0x00;
AINDIDS = 0x50;// 0101 0000 关闭数字输入功能
}
unsigned int Read_ADC_Value(unsigned char AD_IN)
{
unsigned int AD_Value;
AD_IN &= 0x0F;
while(ADCS == 1);//等待空闲
ADCF = 0;//清除转换完成标志
ADCCON0 &= 0xF0;
ADCCON0 |= AD_IN ; //选择通道(AD_IN为4或6)
ADCCON1 |= 0x01; //´打开转换电路
//ADCF = 0;//
ADCS = 1;//开始转换
delay_1us(3);
while(ADCF == 0);//等待完成
AD_Value = ADCRH; //取高8位
AD_Value <<= 4;
AD_Value = AD_Value|(ADCRL&0x0F); //取低4位
//ADCCON1 &= 0xFE;//
AD_Value = AD_Value / 4;//12位转10位
return (unsigned int)AD_Value;
}
|