Re: dspic ADC的問題

作者 AdamSyu 於 2017年03月16日 14:00:36
引用:

CHS 寫道:
目前我要將ADC的值,顯示在LCD屏幕上,但是它的個位、十位數,明顯在跳動,以至於看不清楚,想請問一下 dspic 在算術平均上是否有特別算法?

我目前的寫法主要如下,不曉得出了甚麼問題:

AverageValue = 0;
for (i = 0; i < 8; i++)
{
AD1CHS0bits.CH0SA = channel;
_AD1IF = 0;

AD1CON1bits.SAMP = 0;
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
while (!_AD1IF);
AverageValue = AverageValue + ADC1BUF0;
}
AverageValue = AverageValue >> 3;

謝謝!



初步空跑了一下程式碼,
您的設定是自動取樣, 手動轉換,
也就是轉換時間是由您自己控制的,
您的For迴圈, 沒有給AD足夠的時間去取樣,就進行下一次的轉換(AD1CON1bits.SAMP = 0),
取樣時間不足=AD結果不正確,
這樣的程式結構, 通常會有一個現象,
電壓越低, ADC數值越穩定..

來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=2&topic_id=20414&post_id=74579