2014-04-12 48 views
1

我有一些代碼來設置和上一PIC16F690微控制器PIC讀取模擬輸入讀取2個類似物銷對PIC

//建立 TRISA = 0×01;數據方向寄存器 - 設置端口作爲輸入的位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

ADCON0(位:CHS0..CHS3)寄存器中將ADC複用器值從0更改爲1,等待一段時間(某些us填充ADC採樣電容)並再次調用GETVALUE函數。

+0

謝謝 - 這是有道理的。任何關於交換引腳之間最短等待時間的想法? – user2633388

+0

@ user2633388:檢查數據表:http://ww1.microchip.com/downloads/en/DeviceDoc/41262A.pdf部分:9-1:採集時間示例,如何調整它。 –