基于 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次,发文人进小黑屋喔~

评论