8G1K08A延时及定时器输出有误差
本帖最后由 DebugLab 于 2024-10-12 15:50 编辑问题描述:在使用8G1K08A,反转GPIO状态过程中,发现定时器或延时函数大概存在5%的时间误差.时钟源为默认内部高精度IRC,时钟频率为11.0592MHZ,设置方式为通过STC-ISP工具选项选定。硬件方面,只有两个滤波电容和MCU。电源为USB直接供电5V.请教一下误差原因和消除方法。
100-99.65=0.35
0.35/100*100%=0.35%
是你数学问题 还有测量仪器误差需要考虑 本帖最后由 zhangxu 于 2024-10-12 16:28 编辑
DebugLab 发表于 2024-10-12 16:13
哥,内部预置频率就是后面设置的11.0592MHZ还是预设的固定频率。 zhangxu 发表于 2024-10-12 16:18
哥,内部预置频率就是后面设置的11.0592MHZ还是预设的固定频率,默认优先级设置怎么指令是啥呢。 ...
使用内部预置频率是注意事项,不是导致问题的原因,已经设置一致可忽略,我觉得还是数学问题,0.35%才对
keil的优化等级设置
DebugLab 发表于 2024-10-12 16:28
使用内部预置频率是注意事项,不是导致问题的原因,已经设置一致可忽略,我觉得还是数学问题,0.35%才对 ...
我想消除这个误差的话,只能采用外部晶振吗 zhangxu 发表于 2024-10-12 16:39
我想消除这个误差的话,只能采用外部晶振吗
晶振也解决不了这个问题,要用硬件,比如定时器和RTC,软件延时也受中断影响,要精确必须关中断,但长时间关中断是不现实的,软件延时一般只是粗略的延时,不应该有过高的要求 zhangxu 发表于 2024-10-12 16:39
我想消除这个误差的话,只能采用外部晶振吗
0.35%误差已经很小了,对于粗略的软件延时来说没有影响,你的测量仪器也会有误差,没有绝对的0误差 DebugLab 发表于 2024-10-12 16:46
0.35%误差已经很小了,对于粗略的软件延时来说没有影响,你的测量仪器也会有误差,没有绝对的0误差 ...
了解了,我试一下哈,感谢
页:
[1]
2