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

各位大师求救,F883的ADC转换问题

[复制链接]
742|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kimzz|  楼主 | 2015-7-14 14:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用16F883,ADC采集CH10和CH12两个通道。CH10通道值正常,CH12值比实际值大概高出一倍。请问会是什么原因造成的。
void ADC_init(void)      
{
    ADCON0 = 0xB1; //clock:FOSC/32; CH:12;  ADON:off
    ADCON1 = 0x80; //ADFM:right; VREF-:Vss; Vref+:VCC
    ANSELH = 0x14;
    TRISB |= 0x03;  //RB0,RB1 is input
}
unsigned int ADC_Data(void)
{
    unsigned int result;
    PIR1bits.ADIF = 0;  //clear ADIF
    ADCON0bits.GO_nDONE = 1;    //start ADC
    while(ADCON0bits.GO_nDONE == 1);
    result =(unsigned int)((ADRESH<<8) + ADRESL) ;
    return result;
}

使用MPLAB X IDE v3.05+XC8编译
沙发
yklstudent| | 2015-7-14 15:45 | 只看该作者
ADCON0bits.GO_nDONE = 1;    //start ADC
    while(ADCON0bits.GO_nDONE == 1);
这两句之间增加一些延时看看

使用特权

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

本版积分规则

1

主题

15

帖子

0

粉丝