发 帖
[问答]

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

11251
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 评论

举报

撰写答案

你正在撰写答案

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

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

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

德赢Vwin官网 网

德赢Vwin官网 论坛

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

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

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