我有一些代码用于在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),我该如何更改代码?
答案 0 :(得分:0)
在ADCON0
(位:CHS0..CHS3)寄存器中将ADC多路复用器值从0更改为1,等待一段时间(一些用于填充ADC采样电容)并再次调用GETVALUE
功能。