完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我是 MCU 和一般编程的新手,目前正在尝试计算 3 个 ADC 输入通道的平台平均值。我正在使用指数平滑来降低噪声和检测高原的算法。即使我的信号相似,也有轻微的偏移,而且总是小于 3 毫秒。
我的目标是只对一个通道运行该算法,当它检测到平台时,它会等待 3 毫秒,然后开始对所有通道进行平均。平均将在几毫秒后停止。为此,我正在使用 HAL_Delay 和 HAL_Gettick,但看起来我得到的值与实际值不同。 降噪和平均算法适用于单通道。可能有更聪明的方法来做到这一点,但我对此没有太多经验。 我正在寻找有关整个过程的建议。 |
|
相关推荐
1个回答
|
|
> 在 DMA 回调中使用 HAL_Delay
您需要确保 SysTick 比您在其中使用 HAL_Delay 的任何回调具有更高的优先级(数值较低)。 > 看起来我得到的价值观与现实不同。 以什么方式? > 我正在寻求有关整个过程的建议。 HAL_Delay(3) 将等待 3-4 毫秒之间的某处。它不准确,因为它每毫秒递增一次,因此分辨率很差。您可以使用 CYCCNT 计数器来实现更准确的延迟。 一次传输很多值,而不是仅仅传输 3 个,会更有效率。如果您只关心 ADC,那么这可能并不重要。使用定时器以精确的时间间隔触发 ADC、通过 DMA 传输以及使用半完成和全完成中断进行处理将会更加高效。 高原检测将很挑剔。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2653 浏览 1 评论
3214 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1788 浏览 1 评论
3617 浏览 6 评论
5996 浏览 21 评论
945浏览 4评论
1318浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
590浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1308浏览 3评论
1368浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 12:10 , Processed in 1.187519 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号