完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
一、引言
之前准备做一系列工具,但由于自己时间管理不好,方波发生器设计完后,由于一点小事就懈怠下来了。小事处理完了,继续。此频率计相对误差小于0.02% ,基本达到了工具的需求。 (1)频率和周期的概念 所谓频率,是指某一个信号在确定的一段时间内重复的次数。如果这个一段时间是秒,则这个次数的单位就是赫兹(HZ),该数值记为 f。如果令 对该信号,如果 f(t+nT)=f(t) 对任意正整数n均成立,那么该信号即为周期信号,我们可以通过测量T的方法间接的测量频率。 (2)低频测周,高频测频的由来 从频率的概念我们可以看出,当单位是赫兹时,频率是指1秒内信号重复的次数。1秒是定时的概念、次数是数数的概念。但由于我们常常不能在信号刚变化时开始定时,故可能会多记一次或者少记一次。这就是常说的 ±1 次误差。当频率较小时,±1 次误差造成的相对误差无疑较大;另外,对于小数频率(如10.5hz),常规的数数的方法也是无法适应的,这2个都是在低频时做测周的理论来源。 二、主要问题 从上文分析可以看出,要想实现自适应测频,主要需要解决下述问题: (1)如何判断信号是低频还是高频? (2) 测周时,如果信号频率过低或者无信号,如何解决卡死问题,如何在保证刷新率的基础上尽可能提高测周准确率。 (3)对单片机实现的频率计,为提高准确率,在代码、中断优先级上都需要做什么工作。 三、解决思路 (1)对于第一个问题,常规的方法是预测频。比如可以测0.1s的信号次数,根据这个预测频的数值value1,如果小于某一个数值value2,则测周,否则测频。 对该value2,可在程序全部功能完成后逐渐调整解决,如果不愿意优化,可以采用最高理论测量频率的平方根。 (2)对于第二个问题,为解决卡死问题,我在开始测周前,启动了一个1s的定时器,如果定时器到之后,还没有测到规定的周期数说明信号频率过低,跳出测周流程。为保证测周准确率,我采用了等精度测周的方案,即根据预测频的value1,确定需要测的周期数,根据数完这里周期数的时间,反求频率。 (3)对于第三个问题,计数器我采用了32位计数器,非中断模式。优先级组:测频定时器 > 时分秒时间定时器=串口中断。在代码上,核心代码主要用寄存器实现,并尽可能降低系统冗余代码,尽可能的利用汇编特性,也可以提高测量准确率。 四、测量误差 最终调试发现,最大相对误差 < 0.02% ,基本可满足日常需要。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1883 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1661 浏览 1 评论
1146 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
762 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1720 浏览 2 评论
1963浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
790浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
614浏览 3评论
631浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
593浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-13 04:08 , Processed in 0.714911 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号