痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 4157|回復: 4

16F877~2組(以上)AD轉換飄移問題

[複製鏈接]
發表於 2011-10-14 09:55:46 | 顯示全部樓層 |閱讀模式
小弟我想使用兩組AD~去偵測或是比較電池電位!去切換充電
可是當一個電池滿電,另一個電池無電情況下!既然會把有電AD值拉下,造成無法切換!手動測試如果兩顆電位相近,就不會有誤差,以下FOR迴圈也是考慮PIC內部比較電容未充飽或放電,由PORTB跟C各8各LED顯示AD轉換結果,AD輸入470歐姆限流..希望版上有人解釋或是寫一段來參考~謝謝
x=0;
ADCON0=0x51;
GODONE=1;
while(GODONE){
ADC_Value=ADRESH;
AD=ADC_Value;
ADC_Value=0;
ADIF=0;
}
for(z=0;z<1000;z++){
PORTC=AD;
}
z=0;
ADCON0=0x49;
GODONE=1;
while(GODONE){
ADC_Value=ADRESH;
ADRESH=0;
ADIF=0;
d=ADC_Value;
ADC_Value=0;
}
for(x=0;x<1000;x++){
PORTB=d;
}
發表於 2011-10-14 11:27:00 | 顯示全部樓層
本帖最後由 Ricky 於 2011-10-14 11:28 AM 編輯

有電路圖嗎?
記得在切換AD channel時要延遲一下.
x=0;
z=0;這二行有點多餘.


for(z=0;z<1000;z++){
PORTC=AD;
}

for(x=0;x<1000;x++){
PORTB=d;
}.......為何要重覆輸出1000次?
 樓主| 發表於 2011-10-14 12:59:17 | 顯示全部樓層
Ricky 發表於 2011-10-14 11:27 AM static/image/common/back.gif
有電路圖嗎?
記得在切換AD channel時要延遲一下.
x=0;

X跟Z就是在AD channel時要延遲一下!沒用DELAY~用FOR迴圈!
發表於 2011-10-14 13:12:45 | 顯示全部樓層
本帖最後由 Ricky 於 2011-10-14 01:14 PM 編輯
kaijay 發表於 2011-10-14 12:59 PM static/image/common/back.gif
X跟Z就是在AD channel時要延遲一下!沒用DELAY~用FOR迴圈!


ADCON0=0x50;
ADCON0=0x49; 這二行是切換AD chanenl.
迴圈延遲加在那裡無用,因為AD已經做完,得到的AD值是不準的.
 樓主| 發表於 2011-10-14 13:42:24 | 顯示全部樓層
Ricky 發表於 2011-10-14 01:12 PM static/image/common/back.gif
ADCON0=0x50;
ADCON0=0x49; 這二行是切換AD chanenl.
迴圈延遲加在那裡無用,因為AD已經做完,得到的AD值 ...

謝謝大大~~已修改!!改善了~~
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-11-21 08:50 PM , Processed in 0.161387 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.