|
| 調這么準沒意義,溫度一飄你的石英晶體也跟著飄。 |
| 世界沒有絕對,只有相對,偷笑吧 |
| 算是很強的水準了 |
| 這個和水平無關,和你用的芯片精度有關。。除非你做了校時功能那就另說了。 |
| 比我的表都精確,接近專業級的水平了 |
| 我的手表都沒準過,時間都是往前調兩分鐘 |
把一個復雜的儀表改做時鐘,有點浪費啊 ;那個光柱的位置不同,是不是拿來做秒顯示了? |
| 表示贊一個!加油!再接再厲!希望后面能有更精彩! |
| 很好了,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秒就是不錯的水平了。 |
應該是達到省級水平了![]() 按手表的誤差標準來說,已經是特級 ![]() |