打印
[PIC®/AVR®/dsPIC®产品]

AD无法正常采集

[复制链接]
928|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AD, dc, ADC, go, se

芯片是PIC18F26K22,AD通道选择1,始终采集上来的AD值为0,实际引脚电压在2.6V了,这是什么原因,各位有遇到过的吗

/*AD初始化*/
void ADinit(void)
{
    TRISA=0b11111111;
    /*设置为模拟输入*/
    ANSELA=0X2F;
    /*选择通道1,使能AD模块*/
     ADCON0=0X05;
     /*参考电压选择 VDD,VSS*/
    ADCON1=0X00;
    ADCON2=0X0C;
    ADRESL=0;ADRESH=0x00;
}  

void AD_2(void)
{
        static uchar i=0;
    uint mad0,mad1;
        if(b1.b1_2.b1)
        {
                //AD采集端口选择
                b1.b1_2.b0=0;
        ADCON0bits.CHS=1;
        ADCON0bits.ADON = 1;
                ADCON0bits.GO_nDONE = 1;
                while(ADCON0bits.GO_nDONE);
                if(i>12)i=0;
                else
                {
            /*取10位AD值*/
            mad0=ADRESH;mad1=ADRESL;
            mad0=mad0<<2;mad1=mad1&0XC0;mad1=mad1>>6;
                        AD[i]=mad0|mad1;
                        i++;
                        if(i>10)
                        {
                i=0;
                adfh[adtd]=AD_0();//取采样中间值
                //adctd();//AD通道切换
            }
                }
        }               
}

使用特权

评论回复
沙发
CoolSilicon| | 2019-6-3 08:59 | 只看该作者
设置了channel了之后, 要延迟一段时间, 等sampling完之后才开始转换...

使用特权

评论回复
板凳
systemchip| | 2019-6-3 09:32 | 只看该作者
ADCON2设置不正确

使用特权

评论回复
地板
奔波儿熊| | 2019-6-6 16:45 | 只看该作者
用MCC生成的试试,如果成功了,再与你的配置对比下就发现问题了

使用特权

评论回复
5
yzq13246068880| | 2019-6-11 14:12 | 只看该作者

使用特权

评论回复
6
oxygenzz| | 2019-6-11 18:01 | 只看该作者
楼主问题解决没?

如果还没解决,建议按照datasheet里推荐的ADC时钟设置:
(上面程序中ADC时钟是选FOSC/4,推荐的FOSC为4MHz)

使用特权

评论回复
7
643757107| | 2019-6-11 20:33 | 只看该作者
看来手工配置错了

使用特权

评论回复
8
619888476| | 2019-6-11 22:02 | 只看该作者
参考文档

使用特权

评论回复
9
kxsi| | 2019-6-12 14:05 | 只看该作者
估计是配置出问题了

使用特权

评论回复
10
coshi| | 2019-6-12 15:17 | 只看该作者
读取转换结果的时候读对寄存器了吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

358

帖子

1

粉丝