| 调这么准没意义,温度一飘你的石英晶体也跟着飘。 |
| 世界没有绝对,只有相对,偷笑吧 |
| 算是很强的水准了 |
| 这个和水平无关,和你用的芯片精度有关。。除非你做了校时功能那就另说了。 |
| 比我的表都精确,接近专业级的水平了 |
| 我的手表都没准过,时间都是往前调两分钟 |
把一个复杂的仪表改做时钟,有点浪费啊 ;那个光柱的位置不同,是不是拿来做秒显示了? |
| 表示赞一个!加油!再接再厉!希望后面能有更精彩! |
| 很好了,6年才快1分钟 |
mp3 发表于 2019-3-18 10:38 运行18天都已经差一个小时了? |
| 这是因为延时的原因,它分为硬件延时和软件延时 |
| 1302可以解决问题 |
| 已经接近专业级的水准。 |
| 如果感觉精度达不到,可以加一个wifi网络校时功能!每天校准两次,这个比较好的选择 |
| 很高的水平了 |
| 这个温飘太大了,因晶振温飘大。 |
建议你加块时钟芯片,如DS1302等,或者选用带有内部RTC模块的单片机。用单片机的定时器去完成实时时钟精度只能一般般,外部晶振,内部RC振荡器都满足不了需求,加上定时器中断保护现场,恢复现场,中断服务程序编写等等因素,难以达到较为精准的长时间定时。而且没有网络对时,纯属开环控制,结果未可知。![]() ![]() ![]() |
| 还能更精确,一天程序修正一次误差或者一小时修正一次,有时硬件误差需软件修正。意思就是一小时用软件加上或减去时间误差值,减少积累误差。 |
| 专业级 |
|
你这“快0.03秒”是怎么对比出来的,是用仪器测量的还是理论上的而已? 还有,你调节时间的方法没多大意义,用一个定时器计算好好时钟周期,再使用STC的1T时钟单片机,再使用24MHZ的晶振,理论上(或者是说在实际的程序上)每秒可以达到±1/24uS,比你的0.5uS精度高多了。 代码是可以这么实现的,但实际就不一定行,在用作时钟来说,晶振对温度是比较敏感的,一个12MHZ的晶振是很难真正的达到1uS一个机器周期的,而且,这个误差会累加的上去的,也就是说,你的时钟要是快了就会一直快,要是慢了就会一直的慢,除非是加个自动校时的电路。 |
对时用的百分秒秒表改自《Windows程序设计》中的数字钟程序
DigClock.rar
(1.97 KB, 下载次数: 34)
|
|
说一下我的调整方法: 1秒=(n-1)*定时器时间1+定时器时间2 首先假定定时器时间1=定时器时间2,我的MCU晶振为12Mhz的,取n=200,那么定时器时间为5000us 实际上因为晶振的频率多少有点偏差,需要对定时器时间进行调整,这时候总能找到两个连续的值,一个使电子钟走时偏慢,一个使电子钟走时偏快,取其中一个值为定时器时间1。 定时器时间1每+/-1us,电子钟的1秒就+/-200us,这就需要引入定时器时间2,在us级上调整时间。 可以算出定时器时间2的取值范围是5000us+/-100us。 接下来找定时器时间2,这时候也总能找到两个连续的值,一个使电子钟走时偏慢,一个使电子钟走时偏快,中间的这个点就是最精确走时的定时器时间。 按照这个方法调试,基本可以把1秒的走时误差控制在理论的最小误差范围内,即+/-0.5us,换算1天的累积误差就是+/-0.0432秒。 |
| 按手表的误差标准来说,也不错了 |
| 超級水平,專業級 |
| 如果感觉精度达不到,可以加一个wifi网络校时功能!每天校准两次 |
| 日误差<1秒就是不错的水平了。 |
应该是达到省级水平了![]() 按手表的误差标准来说,已经是特级 ![]() |