用戶在使用 E3 MCAL3.0 做 ADC 採樣電壓時,首先對同一個通道採樣 5 此,然後將這 5 此採樣的值中的最大值和最小值去掉,剩下的三個做平均計算。針對此需求,在 E3640_REF_GATEWAY 板子見圖(1)上做分析測試。
二、默認代碼分析
如圖(2)為 E3 MCAL ADC 驅動獲取採樣轉換數據的函數,在adc 採樣轉換時,會把數據放在 FIFO 中,軟體讀取時會依次把一個通道的 N 次採樣數據讀出來,放到Busbaseptr 中,這個 buffer
在 autosar 標準中是在 APP 程序中定義的。在獲取數據時,根據 EB 配置中的採樣次數,取 buffer 中最後一次數據,作為某個通道的最終採樣值。
通過以上分析,用戶 APP 可以根據自己的需求,將 bufbaseptr 中的數據做處理後,得出更加精確的採樣值。
根據以上分析,實際測試結果符合預測:採樣5次,channel1 的數據取buf[4],channel2 的數據取的 buf[9]。如圖(3)所示。
三、代碼修改與測試
①APP修改如圖(4)所示: 本次測試實際採樣次數配置為 5.group 里有 3 個通道。
②修改驅動程序,實現取平均值。Adc_Hw_E3.c。先給數據排序,然後去掉頭尾buf的數據,其他相加取平均值。
圖(5)為具體的改動說明:
③測試,列印結果見圖(6)
註:以上測試在 EB 中配置採樣次數時必須大於等於 3,如果為 1 或 2,需額外增加代碼做單獨處理。
參考文獻:
- 12.pdf
- 0.pdf
歡迎在博文下方留言評論,我們會及時回復您的問題。如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com
作者:Sim Guo / 郭夕峰
評論