久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3883|回復: 19
收起左側

單片機定時器時間不準

  [復制鏈接]
ID:1077092 發表于 2023-5-29 20:53 | 顯示全部樓層 |閱讀模式
無論我選擇晶振頻率為12MHZ還是11.059Hz ,(用了燒錄軟件里面的那個定時器計算器) 計時器的時間都比正常的慢,幾乎沒分鐘就要慢5s,各位大佬有沒有什么好的解決辦法啊。
回復

使用道具 舉報

ID:161164 發表于 2023-5-29 22:46 | 顯示全部樓層
5/60 = 8.333% Error
正常晶振誤差沒有這么大
程序中是不是用了阻塞式延時?
回復

使用道具 舉報

ID:220661 發表于 2023-5-30 07:45 | 顯示全部樓層
上程序吧,很大可能不是自動賦值的。
回復

使用道具 舉報

ID:879348 發表于 2023-5-30 07:57 | 顯示全部樓層
幾分鐘慢5s不可能
回復

使用道具 舉報

ID:712097 發表于 2023-5-30 08:32 | 顯示全部樓層
要精準計時,推薦使用外部時鐘芯片如PCF8563,DS1302等。
回復

使用道具 舉報

ID:123289 發表于 2023-5-30 08:34 | 顯示全部樓層
好辦,再改中斷時間常數。
回復

使用道具 舉報

ID:57657 發表于 2023-5-30 09:08 | 顯示全部樓層
定時器使用自動重裝初值模式,定時器中斷里的程序執行時間,不得超過定時器設定的時間。
回復

使用道具 舉報

ID:332444 發表于 2023-5-30 09:55 | 顯示全部樓層
看我帖子,單片機頻率比時間芯片高一個數量級,定時是很準確的,有誤差大多是呆等思路和代碼引發的。
回復

使用道具 舉報

ID:332444 發表于 2023-5-30 10:06 | 顯示全部樓層
看圖片運行1小時半始終保持差1秒同步,也就是無誤差。
無標題.png
回復

使用道具 舉報

ID:332444 發表于 2023-5-30 10:11 | 顯示全部樓層
這是代碼片段 無標題.png

回復

使用道具 舉報

ID:123289 發表于 2023-5-30 10:19 | 顯示全部樓層
1、理論上只要是晶振,做到日差1秒之類,沒有問題。因為日差1秒,要求的穩定優于1秒/1天=1/86400,約為百萬分子11.57。晶振振蕩穩定度優于它。
如何做到呢:
2、確保單片機的時基是晶振,而不是內部RC。
3、確保定時器的時鐘源,是由晶振分頻或不分頻的時鐘脈沖。
4、建議使用自動重裝方式(這一點并不是很重要的),但新手會發生中斷時常數重置不準確(如中斷后走了一個脈沖再裝新的時常數)。
5、中斷時常數建議取長1000ms的公約數,例如5、10、20、50、100ms,以便秒計算。對于新手來說,取大一點,間隔時間長一點,發生意外的概率會少一點。
6、由于晶振不會輕易地恰好是12.000000MHz,或是11.0592MHz,所以第5、是做不到精準的。這時你就無法實現日差一秒。
以12M,時鐘分頻為12,則10ms中斷需要,10000個脈沖,通常晶振不是精準的12MHz,如12.000240MHZ,這樣10ms就可能是10000.2個時鐘,由于時常數只能取最接近的整數10000(實際=65536-10000),所以每次中斷最會誤:0.2個時鐘,拆成時間是0.2us。每秒中斷100次,即每秒誤差20us,一天就誤差1.728秒。這是你所能做到的極限精準度。
7、日差<1秒的技巧:如果每間隔一個時間,對誤差進行補償,至于間隔時間取多少,由你決定,補多少,則需要你知道當前日差是多少秒。這個估計難不倒你。
8、中斷服務程序中一定要短,不能超過10ms(前例參考),否則,會丟失一個中斷,這樣計時就無法精準控制了,這是重重之重!
記住:中斷服務只做計時,與之無關的計算,以及其它事件,只做個標記,放到主程序中,依標記再做。這樣中斷服務程序就短了,不會超時了。
回復

使用道具 舉報

ID:1061331 發表于 2023-5-30 10:58 | 顯示全部樓層
可以試試用軟件來調整過來
回復

使用道具 舉報

ID:401564 發表于 2023-5-30 12:48 | 顯示全部樓層
每分鐘慢5秒,我都不用分析,直接就告訴你,這是代碼不對
10個小時以內的定時器,完全可以直接用單片機片上的RC時鐘,都不需要用到晶振
回復

使用道具 舉報

ID:291668 發表于 2023-5-30 13:21 | 顯示全部樓層
誤差太大了。好好檢查一下。
回復

使用道具 舉報

ID:1079863 發表于 2023-5-30 14:44 | 顯示全部樓層
at89c52單片機定時器的時間可能比正常的慢的原因有以下幾種123:  晶振的頻率不準確,導致時鐘信號的周期不穩定,影響定時器的計數速度; 定時器的工作模式設置不正確,導致定時器的計數范圍或重裝載值不合適,影響定時器的溢出時間; 定時器的中斷服務程序執行時間過長,導致定時器的中斷響應延遲,影響定時器的溢出標志清零; 定時器的中斷優先級設置不合理,導致定時器的中斷被其他高優先級的中斷打斷,影響定時器的中斷處理; 定時器的計數源選擇錯誤,導致定時器從外部引腳輸入計數信號,而不是從內部系統時鐘輸入,影響定時器的計數精度。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:883242 發表于 2023-5-30 16:10 | 顯示全部樓層
chxelc 發表于 2023-5-30 08:32
要精準計時,推薦使用外部時鐘芯片如PCF8563,DS1302等。

RTC的優點是功耗極低,掉電依然可以運行。缺點是32768的音叉晶體沒有MHz級AT-cut晶體穩定,實際上更加不準確。
回復

使用道具 舉報

ID:332444 發表于 2023-5-30 16:32 | 顯示全部樓層
運行8小時后依然無差
無標題.png

回復

使用道具 舉報

ID:1074206 發表于 2023-5-30 17:26 | 顯示全部樓層
雖然51的精度不是很高,但絕不會出現你說的這種情況,一定是程序里面有問題
回復

使用道具 舉報

ID:1081090 發表于 2023-5-31 13:57 | 顯示全部樓層
可能的原因:
1、晶振未起振,程序用RC在跑
2、定時器阻塞了(比如你在10ms定時器里跑了個可能需要12ms的程序)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩中 | 日韩视频在线一区二区 | 一区二区三区视频在线免费观看 | 欧美激情在线观看一区二区三区 | 日韩毛片| 日韩电影中文字幕 | 一区二区视频 | 欧美日韩综合视频 | 99国产精品一区二区三区 | 亚洲午夜在线 | 国产精品久久久久久婷婷天堂 | 欧州一区二区三区 | 国产精品久久久久久久久久三级 | 欧美精品一区二区三区在线 | 亚洲精品在| 91久久夜色 | 亚洲人成在线观看 | 欧洲精品码一区二区三区免费看 | 久久蜜桃精品 | 日韩精品视频在线免费观看 | 久久久国产精品入口麻豆 | 欧一区| 国产精品区二区三区日本 | 一级片毛片| 九九综合九九 | 免费日韩av | 国产99免费视频 | 久久久久久免费精品一区二区三区 | 91在线精品秘密一区二区 | 日韩精品一区二区三区视频播放 | 一本岛道一二三不卡区 | 久久精品视频在线免费观看 | 精品一二三区在线观看 | 91伊人 | 完全免费在线视频 | 久久国产精品一区二区三区 | 久精品久久 | 日韩精品成人 | 日韩中文字幕 | 黑人粗黑大躁护士 | 伊人av在线播放 |