发 帖  
[问答]

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

11455
2018-4-17 13:32:54   2 评论 分享淘帖 邀请回答 举报
2 条评论
  • 2019-5-9 21:53

    请问楼主怎么解决的呀

    CHIXIANMENI 回复 陈慧敏: 2019-5-24 09:35

    void ADC_Init(void)
    {
            P0M1 |= 0X30;        //0011 0000        P0.4(AIN5)¡¢P0.5(AIN4)ÉèÖÃΪ¸ß×èÊäÈëPxM1,PxM2:10
            P0M2 &= 0xCF;        //1100 1111
           
            AINDIDS = 0x00;
            AINDIDS = 0x30;// 0011 0000        1:¹Ø±ÕÊý×ÖÊäÈ뻺³å        0:
                                                                            //P04P05¹Ø±ÕÊý×ÖÊäÈ뻺³å
            ADCF = 0;//Çå³ýת»¯Íê³É±ê־λ
    }

    //²É¼¯ADC³õʼֵ
    unsigned int Read_ADC_Value(unsigned char AD_IN)
    {
            unsigned int AD_Value = 0;
           
            AD_IN &= 0x0F; //0x04ζȠ               0x06ʪ¶È
            while(ADCS == 1);//µÈ´ý¿ÕÏÐ
            ADCF = 0;//Çå³ýת»¯Íê³É±ê־λ
            ADCCON0 &= 0xF0;
            ADCCON0 |= AD_IN ;        //±£Ö¤µÍ4λΪѡÔñͨµÀÑ¡Ôñ Ñ¡ÔñÎÂʪÊäÈëͨµÀ
            ADCCON1 |= 0x01;        //´ò¿ªÑ¡ÖеÄADµç·

            //ADCF = 0;//Çå³ýת»¯Íê³É±ê־λ
            ADCS = 1;//Èí¼þ´¥·¢×ª»¯
            delay_1us(3);
            while(ADCF == 0);//ת»»Íê³É±ê־λ
            AD_Value = ADCRH;        //ÌáÈ¡¸ß8λÊýÖµ
            AD_Value <<= 4;        //12bitADCÕâÀïÈ¡ÆäÖеÄ12bit
            AD_Value = AD_Value|(ADCRL&0x0F);        //ÌáÈ¡µÍ4λÊýÖµ
            //ADCCON1 &= 0xFE;//¹Ø±ÕADCת»»µç·ÒÔ½ÚÄÜ
            //AD_Value = AD_Value / 4;
            return (unsigned int)AD_Value;
    }

6个回答
2018-4-19 09:13:55 评论

举报

2018-4-17 13:32:55 评论

举报

2018-5-10 15:23:46 评论

举报

2018-5-10 15:24:07 评论

举报

2019-8-24 08:27:06 1 评论

举报

1 条评论
2019-12-16 15:43:20 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

您需要登录后才可以回帖 登录/注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
快速回复 返回顶部 返回列表
关注微信公众号

电子发烧友网

电子发烧友论坛

社区合作
刘勇
联系电话:15994832713
邮箱地址:liuyong@huaqiu.com
社区管理
elecfans短短
微信:elecfans_666
邮箱:users@huaqiu.com
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表