找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

你還在浪費時間去計算單片機延時程序delay的循環(huán)次數(shù)?

查看數(shù): 8584 | 評論數(shù): 22 | 收藏 5
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2021-3-26 11:16

正文摘要:

本帖最后由 人人學會單片機 于 2021-4-4 19:08 編輯 好久沒有發(fā)貼子了,最近都在51hei論壇上回答網友問題。我發(fā)現(xiàn)很多個網友都有提問同樣的問題,如何精確的計算delay 里面多少個循環(huán)是1ms ;蛘哒ffor循環(huán)的語句 ...

回復

ID:1108782 發(fā)表于 2024-1-16 11:13
解決辦法也很簡單,占用一個定時器,用定時器計算精確時間。不過如果沒有加晶振的話時間也不準的
ID:804975 發(fā)表于 2024-1-14 23:17
阻塞式延時,最大的問題在函數(shù)的運行的時間很長,后面的語句要等待,說個例子,IIC的工作里面就有大量的延時操作,完成一個動作,等待10MS再操作其他的動作,程序都停止等待這個10MS的結束。這個等待會影響到其他的操作,好象按鍵輸入,AD輸入等等,小程序還好,大一點的程序就有麻煩了。
ID:804975 發(fā)表于 2024-1-14 23:10
一般8位機,盡量避免阻塞式延時,這種方式,會讓定時器要求高,開兩個定時都會有函數(shù)超時的問題的可能。
ID:145357 發(fā)表于 2024-1-11 23:16
cnfloatleaf 發(fā)表于 2023-12-28 17:21
延時程序我也是用示波器來測量,因為各種原因,計算的都不準。

給個教程怎么搞的?
ID:458247 發(fā)表于 2023-12-28 17:50
wkman 發(fā)表于 2023-12-28 14:21
示波器,是干什么用的???
現(xiàn)在各種mcu的內核速度不一樣,靠數(shù)幾個_nop_之類的,絞盡腦汁去計算,不如示 ...

如果是STM32的單片機,建議用dwt功能進行計時,免去接硬件的繁瑣,直接在軟件里就可以計算運行時長
ID:1085441 發(fā)表于 2023-12-28 17:21
延時程序我也是用示波器來測量,因為各種原因,計算的都不準。
ID:120219 發(fā)表于 2023-12-28 14:57
winson007 發(fā)表于 2021-4-22 17:22
說半天,都不知想表達什么

廣告才是關鍵
ID:433219 發(fā)表于 2023-12-28 14:21
示波器,是干什么用的???
現(xiàn)在各種mcu的內核速度不一樣,靠數(shù)幾個_nop_之類的,絞盡腦汁去計算,不如示波器卡一下時間,一目了然。!
ID:383215 發(fā)表于 2023-12-27 15:25
joyb 發(fā)表于 2023-12-27 09:19
18B20、HX711、紅外接收
不用delay,有什么方法

不是18B20、HX711、紅外接收不用delay,是18B20、HX711、紅外接收的這些程序,幾十μS到100μS以內的延時只能用軟件延時,至少51單片機100μS以內沒有必要安排其它程序,100μS以內的延時精度要求較高,誤差太大就會導致單總線器件的讀寫不正常,幾百μS以上的長延時不能用軟件延時,會造成CPU代碼執(zhí)行效率降低,單總線器件的長延時對精度要求并不高,可以用中斷完成,不用中斷還可以用循環(huán)周期。樓主最后說的是重點:“學會提高CPU的代碼執(zhí)行效率,是很有必要的!”重點中的重點是最后一句:“什么是單片機?咱玩的就是時間!”可惜很多人不理解。
ID:1064915 發(fā)表于 2023-12-27 09:19
18B20、HX711、紅外接收
不用delay,有什么方法
ID:673920 發(fā)表于 2022-12-21 23:03
我初學一般情況是把時間收/放一下,再用示波器或用秒表驗證
ID:951974 發(fā)表于 2022-12-21 14:15
說了半天都是有道理的,但是等于又什么都沒有說。。。。。。。
樓主真是高手啊
ID:383215 發(fā)表于 2021-5-1 17:12
人人學會單片機 發(fā)表于 2021-4-30 22:23
你們不要去看懂這些延遲,因為根本沒什么卵用,我文章的主題思想 就是告訴你們不要用delay來做長延遲或者 ...

你說的非常非常的正確,這些延時程序根本沒什么卵用,我從來不計算任何程序的時間,都是設計電路的時候多預留一個I/O口,就用這個口靠示波器測量,什么18B20、HX711、紅外接收之類的程序延時,就是用示波器測量著編出來的。我把單片機延時程序定為普通精度、高精度和超高精度三個檔次,每種精度我都有辦法實現(xiàn)。我編的所有單片機程序除了程序入口處,其它地方超過100微秒的延時程序根本就沒有,幾百微秒以上的延時程序用其它方法都解決了。
ID:390416 發(fā)表于 2021-4-30 22:28

你們不要去看懂這些延遲,因為根本沒什么卵用,我文章的主題思想 就是告訴你們不要用delay來做長延遲或者精準延遲。
ID:390416 發(fā)表于 2021-4-30 22:24
winson007 發(fā)表于 2021-4-22 17:22
說半天,都不知想表達什么

你們不要去看懂這些延遲,因為根本沒什么卵用,我文章的主題思想 就是告訴你們不要用delay來做長延遲或者精準延遲。
ID:390416 發(fā)表于 2021-4-30 22:23
創(chuàng)造生活 發(fā)表于 2021-4-20 19:24
為什么第二種情況多加了一層死循環(huán)延時時閘反而會更短呢請老師指教

你們不要去看懂這些延遲,因為根本沒什么卵用,我文章的主題思想 就是告訴你們不要用delay來做長延遲或者精準延遲。
ID:912593 發(fā)表于 2021-4-26 17:59
初學也是看不懂,謝謝大大們分享
ID:106977 發(fā)表于 2021-4-26 16:56
現(xiàn)在的51單片機資源也多了?梢岳肨1做精確定時器。
ID:910171 發(fā)表于 2021-4-24 16:37
不知所云呀。
ID:457221 發(fā)表于 2021-4-22 17:22
說半天,都不知想表達什么
ID:881715 發(fā)表于 2021-4-20 19:24
為什么第二種情況多加了一層死循環(huán)延時時閘反而會更短呢請老師指教
ID:884042 發(fā)表于 2021-3-26 20:37
好東西!

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表