新唐单片机n76e003的ADC这么配置有什么问题吗?AD读出来是错的。

2019-07-15 08:38发布

新唐单片机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;
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
ql1000
1楼-- · 2019-07-15 19:04
beiC 发表于 2018-4-19 09:13
加2355898195,安排FAE服务

学习学习!谢谢!
ql1000
2楼-- · 2019-07-15 23:19
 精彩回答 2  元偷偷看……

一周热门 更多>