读取PIC上的2个模拟引脚

时间:2014-04-12 17:45:33

标签: embedded pic

我有一些代码用于在PIC16F690 PIC单片机上设置和读取模拟输入

//建立     TRISA = 0x01;数据方向寄存器 - 设置端口位0作为输入,即RA0     ANSEL = 0x01;将此引脚设置为模拟     ADCON1 = 0x50;
    ADCON0 = 0x81;

while (1){
 unsigned char val = GETVALUE();
 wait();
}

unsigned char GETVALUE(void){

 unsigned short nRet; 
 ADCON0 |= 0x02;             // Start conversion

 while(ADCON0 & 0x02)        // wait for conversion
 {
 }
 nRet = ADRESH;
 nRet <<=8;
 nRet += ADRESL;

 return (nRet & 0x3FF);
}

似乎工作正常

如果我想交替读取2个引脚(RA0和RA1),我该如何更改代码?

1 个答案:

答案 0 :(得分:0)

ADCON0(位:CHS0..CHS3)寄存器中将ADC多路复用器值从0更改为1,等待一段时间(一些用于填充ADC采样电容)并再次调用GETVALUE功能。