单片机工程师在面试的过程中 , 经常会碰到一些相同的问题 , 笔者总结了十个提问率较高的问题 , 供大家参考 。 现在我们来分析单片机工程师常遇面试问题之五:单片机如何处理ADC采样数据?
【单片机如何处理ADC采样数据? 单片机怎么采集数据】 前面作者有文章介绍了单片机是如何采样电压和电流的 , 如有不了解单片机ADC采样原理的小伙伴可以点击我的头像进入我的主页查看文章"单片机是如何采样电流?" 。
首先一定有小伙伴有疑问 , 为什么还要对采样的数据进行处理呢?直接拿来用不行吗?对于这个问题 , 我的回答是不建议这样做 , 因为任何系统都会存在干扰 , 不进行处理就会有数据存在一定的误差 。 那么我进行数据处理就是要尽量避免因外界干扰引起的误差 。
在这里作者推荐两种方法 , 第一种方法是多次采样加权取平均 , 我相信很多朋友都可以想到这种方法 , 但在写程序的时候可以运用一些技巧 , 作者分享给你 。 首先我们ADC采集8次数据并且对这8次数据累加(可以每1ms调用该函数) , 累加完成后将累加结果右移3位得到最后的采样结果 。 当然这个方法还可以进一步改善 , 比如取样10次 , 然后去掉最大值和最小值 , 再对剩下的8次进行取平均 。 下面贴出参考程序供小伙伴参考 。
文章插图
图(1)参考程序
当然 , 第一种取平均的方法能够有效抑制干扰 , 但因为需要多次采样 , 更新数据的时间会很长 , 比如取样8次 , 每1ms取样一次 , 那么更新数据就需要8ms时间 , 所以对采样的数据实时性要求不是很高的系统才可以用这种方法 。 所以我们第二种方法就是用在实时性比较高的系统 。 作者推荐的是中值滤波的方法 , 实现思想就是取5个数据 , 每次采样的新数据替换掉最老的数据 , 然后把中间的那个数据当做是采样数据 , 这样不仅可以有效抑制干扰 , 而且响应速度快 。
推荐阅读
- 高速稳定的云服务器,应该如何配 云服务器怎么高效运行
- 电商必知:如何计算网站流量 网络数据流量怎么计算
- 惊蛰节气如何养生? 惊蛰是什么意思
- 久坐伤身体 如何有效减少伤害?
- 金宇彬抗癌成功 鼻咽癌是怎么回事如何预防
- 如何在ios7的IPad上下载旧版本微信推荐阅读
- win7桌面图标有小箭头如何去掉 电脑桌面图标有小箭头去掉方法系统教程推荐
- win7提示出现了运行时间错误,是否进行调试如何解电脑技术提升篇
- 如何从舌苔看脾胃健康
- 冬季如何增强自身体质