fsj5098 发表于 2022-11-2 19:58 我对这点也有深刻的教训,在一个测量中发现测量结果没有误差,而从测量机制上,预期该有很大误差才对,具体实例在我的贴子《基于stc32g12k128单片机和jlx12864的简易脉冲测量器 附程序》中对11059200HZ的频率测量有图片显示,正是这种没误差测量结果使我意识到测量方法的合理性存在问题,并在后面做了提示说明。之后发的几种有关频率测量的例程都在从不同的侧面去规避这种漏洞的影响。我的观点是,整数测量的准确性本身体现的是一种测量方法的不合理性。但对非整数的测量,还会受限于单片机数字处理能力。特别是对宽频率范围进行测量的程序,小数部分的处理会受字节长度的影响而变得很麻烦。 |
基准频率一定要稳和准,否则跳动厉害,频率计对于整数测量是比较容易的,非整数难点比较大,比如31.592Hz |
yzwzfyz 发表于 2022-11-2 10:00 我认为程序方面现在存在的误差主要表现在正负一的计数误差,而解决这个问题并不难,在我发的其它帖子里的程序可以容易的解决,但主要是面向测量频率的任务,对时钟的需要还真没认真研究过。有空时会去分析一下对策。 |
yzwzfyz 发表于 2022-11-2 10:00 很专业的说明,希望有更多人能看到 |
yzwzfyz 发表于 2022-11-1 16:34 有道理,我是想用这个程序测量脉冲频率,如果做电子钟的话要考虑系统时钟的精度和稳定性了。不是程序问题,当然程序本身也存在计数误差的限制。 |
你实际做一下就会发现问题了。 做个电子钟,看看一个月误差几秒,就知道你的方法灵不灵了。(不用时钟专用芯片) |
补充:该例程在proteus8.12和8.13版本运行通过,使用的库函数是8.13版的。 |