2013-09-30 77 views
0

Iam使用嵌入式c通過讀取圖片16f73中的adc值來執行識別手勢的項目。使用單個adc頻道時一切正常。當我使用多個通道時,數值會相互影響。這是硬件錯誤還是軟件問題?兩個模擬通道在圖片中相互影響

回答

1

也許吧。這很可能是一個或另一個,或兩者兼而有之。將問題分解成一半。

一次消除一個。兩個模擬輸入的示波器/儀表。改變一個輸入 - 另一個輸入是否也改變了?如果是這樣,至少有一個硬件問題。如果沒有,它是軟件。

這是調試101

1

這是一個硬件的影響,但不是一個錯誤。

datasheet

11.1 A/d採集要求 爲了使A/d轉換器,以滿足規定的精度, 電荷保持電容(CHOLD)必須允許 充滿至所述輸入通道電壓電平。圖11-2顯示了 模擬輸入模型。阻抗(RS)和內部採樣開關(RSS) 阻抗的來源直接影響對電容器CHOLD充電 所需的時間。採樣開關(RSS) 阻抗隨器件電壓(VDD)而變化,請參閱 圖11-2。源阻抗影響模擬輸入端的電壓偏移 (由於引腳泄漏電流)。 模擬信號源的最大推薦阻抗爲10kΩ。選擇(更改)模擬輸入通道 後,採集週期必須通過 ,然後才能開始轉換。 要計算最小採集時間TACQ,請參見「PICmicro™中檔單片機系列參考手冊」(DS33023) 。但是,一般來說,給定10kΩ的最大源阻抗和100°C的溫度 ,TACQ將不會超過16μs。

1

這可能是因爲你有高阻抗源驅動所有的ADC引腳。當多路複用器從一個輸入切換到下一個輸入時,從前一個輸入存儲在ADC採樣電容上的任何電荷將仍然存在。

如果您用合適的運算放大器的輸出驅動每個輸入,當ADC的多路複用器切換時,運算放大器能夠驅動電荷充電或從採樣電容中吸取電荷,以及新輸入所需的時間正在讀數可以大幅減少。另外,用這種方法,你不會加載你想要讀取的電壓。

如果你不能用低阻抗源驅動,那麼確保你有足夠的時間來處理新的輸入值。

相關問題