基於 SemiDrive E3640 Gateway MCAL3.0 ADC 採樣值平均計算

一、功能需求與測試環境

用戶在使用 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,需額外增加代碼做單獨處理。

 

參考文獻:

  1. 12.pdf
  2. 0.pdf

歡迎在博文下方留言評論,我們會及時回復您的問題。如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com
作者:Sim Guo / 郭夕峰

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論