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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

關于單片機1秒定時的疑問

查看數: 2875 | 評論數: 19 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2022-12-19 10:28

正文摘要:

需要做一個一秒鐘的倒計時功能,可以設一個1ms定時器,循環1000次,也可以設一個50ms定時器,循環20次。請問哪種時間比較準確?兩種方法系統開銷有差別嗎?(因為還有很多其他功能,循環次數多會影響其他功能運行嗎 ...

回復

ID:1044091 發表于 2023-1-21 16:37
新鄉家電維修 發表于 2023-1-21 13:19
你要是會點單片機知識就不會問了,延時是最基層的入門程序。你不會告訴你也不會用

定時器0軟件重裝控制電機調速,定時器1軟件重裝控制液體體積倒數,定時器3自動重裝掃描ec11,按鍵和產生500ms和1秒時基信號。3個定時器全用完了。
ID:1034262 發表于 2023-1-21 16:24
使用定時器,自動重裝模式不會引入誤差,時間精度跟晶振一致,你用一個0.01ppm的恒溫晶振,年誤差不超過0.3秒,我就做有這么一個。
ID:1044091 發表于 2023-1-21 16:19
新鄉家電維修 發表于 2023-1-21 13:19
你要是會點單片機知識就不會問了,延時是最基層的入門程序。你不會告訴你也不會用

確定了,定時器最后用的是2ms時長。中斷里3個標志位,1個2ms掃描EC11,1個500ms閃動數碼管,1個1s給倒計時。
ID:57657 發表于 2023-1-21 15:47
定時器中斷定1秒必須設為自動重裝初值模式,手動重裝誤差大,有多個中斷應設為高優先級。
ID:72088 發表于 2023-1-21 13:19
你要是會點單片機知識就不會問了,延時是最基層的入門程序。你不會告訴你也不會用
ID:965189 發表于 2023-1-21 09:29
單從對別的函數的影響來考慮的話,當然是中斷的次數越少越好。
ID:1059013 發表于 2023-1-20 15:00
通常都是有誤差的,可以在循環里放一個IO口的Toggle 語句,然后用示波器看端口輸出方波波長,然后調整語句就能準確了
ID:1044091 發表于 2022-12-20 16:18
188610329 發表于 2022-12-20 14:14
STC8G  的 定時器2 有 8位預分頻(TM2PS) 寄存器,你可以直接 64分頻后,直接得到1秒的 定時時間。以你 ...

謝謝前輩指導!我試一下。
ID:624769 發表于 2022-12-20 14:14
ningsy 發表于 2022-12-20 10:59
現在用的是STC8G1K08(兼容STC8H1K08),定時器2,50ms 12T自動重載,STC-ISP定時器計算器的代碼。用山寨 ...

STC8G  的 定時器2 有 8位預分頻(TM2PS) 寄存器,你可以直接 64分頻后,直接得到1秒的 定時時間。以你現有的例子為例:
void Timer2Init(void)                //1秒@11.0592MHz
{
        AUXR &= 0xFB;                //定時器時鐘12T模式
        P_SW2 |= 0x80;
        TM2PS = 63;       //64分頻
        T2L = 0xC0;                //設置定時初始值 65536-1440
        T2H = 0xC7;                //設置定時初始值
        AUXR |= 0x10;                //定時器2開始計時
}
ID:879348 發表于 2022-12-20 11:58
看你對準的要求怎樣
ID:839835 發表于 2022-12-20 11:08
跟你循環多少次其實沒多大關系,準不準看晶振,一般外部晶振可以達到0.001的誤差,內部晶振1%-3%的誤差。想要看看精確度,最好看看芯片手冊
ID:1034262 發表于 2022-12-20 11:04
定時器工作于自動重裝方式,1ms或50ms,精度一樣,取決于晶振的精度。
ID:1044091 發表于 2022-12-20 10:59
188610329 發表于 2022-12-20 10:22
如果,一上來就是奔著1秒去的,如果用的是沒有重載功能89c51這種片子,則兩種都不好。 應該按,第一次跑余 ...

現在用的是STC8G1K08(兼容STC8H1K08),定時器2,50ms 12T自動重載,STC-ISP定時器計算器的代碼。用山寨邏輯分析儀測試1S方波脈寬,每次測還不一樣,有時候準的很,多數時候要慢零點幾毫秒。可能IRC頻率自動調整誤差也有影響。

您說的“分頻計數器”是什么呢?我這個項目代碼空間快不夠了,還想用USB來升級,未來準備改成STC8H8K64U,能直接產生1秒時基嗎?


void Timer2Init(void)                //50毫秒@11.0592MHz
{
        AUXR &= 0xFB;                //定時器時鐘12T模式
        T2L = 0x00;                //設置定時初始值
        T2H = 0x4C;                //設置定時初始值
        AUXR |= 0x10;                //定時器2開始計時
}
ID:624769 發表于 2022-12-20 10:22
如果,一上來就是奔著1秒去的,如果用的是沒有重載功能89c51這種片子,則兩種都不好。 應該按,第一次跑余,后面都跑滿65536來設計。 如是帶自動重載的定時器,則50ms較好。如果是帶分頻計數器這種,應直接定1秒。總之應根據使用的單片機來做合理設置。
ID:1058360 發表于 2022-12-20 10:02
其它功能盡量不要寫到中斷程序里,不然會有誤差
ID:353115 發表于 2022-12-20 09:52
準確與否,看給定時器的值準不準,比如65536-11059200/12*50/1000=19456,這樣定時50ms,結果是個整數。如果定時1ms,那么在計算11059200/12*1/1000=921.6,會有小數,這樣就會有精度損失。
ID:1056573 發表于 2022-12-20 01:13
設一個單片機工作于12M晶體震蕩器,它的時鐘周期是1/12(微秒)。它的一個機器周期是12*(1/12)也就是1微秒。所以設置1s定時,無論怎么設置定時器、怎么循環,理論上運行的機器周期是一樣的,即總循環次數是一樣的。
ID:332444 發表于 2022-12-19 11:25
定時器誤差受程序其他部分影響不小,合理的程序才能保證秒鐘的準確.

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线看av的网址 | 黄色亚洲 | 91视频亚洲 | 精品久久久久一区二区国产 | 日韩精品一区二区三区中文在线 | 亚洲视频一区二区三区 | 欧美高清视频一区 | avtt国产 | 亚洲精品粉嫩美女一区 | 成人精品一区二区三区四区 | 亚洲欧美综合精品久久成人 | 99久久免费精品国产男女高不卡 | 91精品福利 | 国产亚洲精品久久情网 | 午夜久久| 欧美激情五月 | 中文字幕91 | 亚洲 中文 欧美 日韩 在线观看 | 久久精品国产免费一区二区三区 | av网站免费观看 | 福利二区| 久久精品久久久 | 九九视频在线观看视频6 | 国产91av视频在线观看 | 国产午夜视频 | 久久久久国产一区二区三区 | 亚洲欧美激情精品一区二区 | 精品久久久久久久久久久久久久久久久 | 在线看一区二区三区 | 欧美精品一区二区三区在线播放 | 欧美黑人又粗大 | 在线91 | 观看毛片| 日韩aⅴ片| 久久777 | 久一久| 成人精品国产免费网站 | 免费国产一区 | 午夜影院视频 | 国色天香成人网 | 国产欧美一区二区三区免费 |