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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6604|回復: 16
打印 上一主題 下一主題
收起左側

單片機程序用delay延時會造成阻塞嗎

  [復制鏈接]
跳轉到指定樓層
樓主


我看網上的例程,I2C,液晶時序等都用了很多的delay延時函數,里面就是個空循環,實際項目開發中也是這樣用的嗎?這樣不會影響速度嗎?
假如I2C有很多數據要讀寫,這些delay加起來的延時就不少了吧,這樣程序不就是光在I2C上耗著了,其它事也處理不了啦?程序會阻塞吧?
再萬一在延時的時候遇上中斷了,I2C上的數據不會錯亂嗎?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:235200 發表于 2019-10-24 18:13 | 只看該作者
該延時一般只有5us左右,是IIC讀寫時序要求的,讀寫速度符合IIC總線規范,如遇中斷,中斷程序應該保護原程序的現場,不會造成混亂,萬一偶爾出錯,程序應該具有糾錯功能
回復

使用道具 舉報

板凳
ID:123289 發表于 2019-10-24 20:17 | 只看該作者
你是懷疑完全正確,確實會發生你所擔心的事!所以高手多不用這種“硬”DELAY做延時。
沙發的說法,我不贊同。中斷會占用CPU時間,這個時間多長,又不確定,極可能使原先程序的時序受到干擾而出錯。
回復

使用道具 舉報

地板
ID:401564 發表于 2019-10-25 08:44 | 只看該作者
延時本來的目的就是為了阻塞呀!就是為了讓程序在這等著
對于中斷而言,現場保護是一定要有的
進入中斷之后就先把IIC相關的數據先保存,中斷返回之前再取回數據就可以了,IIC的工作是有時鐘的,進入中斷了,時鐘也跟關閉了,IIC器件就停止數據傳輸了,中斷返回再繼續工作就可以了

對于你所說的問題,不同的人會有不同的解決方法,可以考慮使用硬件IIC,有的單片機是有硬件IIC端口的.

回復

使用道具 舉報

5#
ID:625395 發表于 2019-10-25 09:11 | 只看該作者
學習了,都是經驗豐富的高手啊。太贊了.
回復

使用道具 舉報

6#
ID:525511 發表于 2019-10-25 14:34 | 只看該作者
Y_G_G 發表于 2019-10-25 08:44
延時本來的目的就是為了阻塞呀!就是為了讓程序在這等著
對于中斷而言,現場保護是一定要有的
進入中斷之后 ...

就是說延時是必不可少了?單片機速度再快也沒用,如果使用IIC的話整個系統的速度就會被IIC拖慢了?
有沒有可能延時的這段時間去做其它事,程序不用在這等著?

硬件IIC這個并不是每一個單片機都有呀
回復

使用道具 舉報

7#
ID:525511 發表于 2019-10-25 14:35 | 只看該作者
yzwzfyz 發表于 2019-10-24 20:17
你是懷疑完全正確,確實會發生你所擔心的事!所以高手多不用這種“硬”DELAY做延時。
沙發的說法,我不贊 ...

如果不用delay延時,還有什么做法呢?
回復

使用道具 舉報

8#
ID:525511 發表于 2019-10-25 14:42 | 只看該作者
csmyldl 發表于 2019-10-24 18:13
該延時一般只有5us左右,是IIC讀寫時序要求的,讀寫速度符合IIC總線規范,如遇中斷,中斷程序應該保護原程序的 ...

讀寫速度是能夠符合IIC的規范,我的意思不是說影響IIC的數據速度,而是其它地方的,比如同一系統上有IIC也
有SPI,CAN等等速度比IIC快的,但用IIC的時候用了delay延時了,程度在那等著了,其它地方不動了,那整個系統的運行速度不是被拖慢了?
回復

使用道具 舉報

9#
ID:606366 發表于 2019-10-25 16:00 | 只看該作者
老夫任我行 發表于 2019-10-25 14:42
讀寫速度是能夠符合IIC的規范,我的意思不是說影響IIC的數據速度,而是其它地方的,比如同一系統上有IIC ...

系統的運行速度是跟芯片的頻率有關,這個延時是根據IIC的時序來的,其他地方比iic快的話當程序運行到延時函數的時候并不是在等待,而是一直在做運算,碰到中斷,處理完中斷程序后,如果不影響iic的讀寫操作是可以的,畢竟中斷里的代碼一般不會有延時,處理起來比較快
回復

使用道具 舉報

10#
ID:332444 發表于 2019-10-25 17:12 | 只看該作者
首先要考慮的是IIC時序的空隙是否能夠利用?如果能夠利用,那才有討論的余地。
回復

使用道具 舉報

11#
ID:235200 發表于 2019-10-26 01:52 | 只看該作者
yzwzfyz 發表于 2019-10-24 20:17
你是懷疑完全正確,確實會發生你所擔心的事!所以高手多不用這種“硬”DELAY做延時。
沙發的說法,我不贊 ...

你用的詞是"極可能",不是一定會出錯,我也沒說不會出錯,對編程者來說,就是要在程序中避免這種出錯,提高通信的可靠性,所以如果偶爾發生了錯,程序要能舍棄錯誤的數據,重新獲取正確的數據,因此不會造成IIC讀取出來的數據錯亂樓主所提到的擔心拖慢系統速度,這是毫無疑問的,計算機主頻3GHz,但外設均達不到這個速度,只要與外設通信,一定會拖慢速度,設計系統是只有選較快的外設才能提高系統速度
回復

使用道具 舉報

12#
ID:401564 發表于 2019-10-26 10:17 | 只看該作者
老夫任我行 發表于 2019-10-25 14:34
就是說延時是必不可少了?單片機速度再快也沒用,如果使用IIC的話整個系統的速度就會被IIC拖慢了?
有沒 ...

不管是IIC還是在其它器件,有的延時是一定要有的,情況也確實是像你所說的那樣,這延時一下,那延時一下,MCU會花很多的時間在等待延時上,整個的系統也是會慢很多
但這也只是相對于MCU的執行時間而言的,但更多的時候,對于實際應用來說,單片機反而是太快了,有時候是不需要那么快的
打個比方,你這個是一個自動出售飲水的機器,IIC器件用于保存今日總收入,那么,你想一下,當一個人完成交易到下一個人來進行交易的時候,中間至少也是幾秒鐘的時間,對于幾個MHZ的單片機來說,這幾秒就可以幾百萬條指令了,或者是說,你機器給水多供水1mS和少供水1mS是沒有區別的.或者是一個自動開關燈電路,早開0.001秒和晚開0.001秒,區別并不大,等于是沒有區別的了

當然,也會有對時間要求相當高的應用,遇上這種情況,一般都是按照代行等級來重新設定元件和程序的,比如,你的電路對于一個幾微秒的時鐘信號一定要捕捉到,那么,就以這一點為最高優先等級,其它的設定都得為這個讓路:不用IIC器件,捕捉使用最高等級的中斷,捕捉相關代碼使用匯編語言
回復

使用道具 舉報

13#
ID:373499 發表于 2019-10-26 12:42 | 只看該作者
確實是會堵塞,但是只堵塞個幾us,這個不用擔心的
回復

使用道具 舉報

14#
ID:523997 發表于 2019-10-26 16:18 | 只看該作者
延時有兩種方法,一種是用軟件延時,即寫延時子程序,這種方法是讓單片機執行無用的指令,就是為了延時,延時期間就不能做其他事情了,很浪費單片機的時間。這種方法是在單片機不忙的情況下用,反正閑著也是閑著。 第二種方法就是你要求的,即能延時,又不耽誤主程序的運行,用定時器T0或T1定時,設置定時時間后,定時器開始計時,主程序繼續執行,不用管定時器,當定時時間到,定時器就會申請中斷,單片機就響應中斷,處理定時子程序需要完成的工作,完成后返回到主程序繼續主程序的執行,這是最合理的方法,充分利用了單片機的資源,互不影響。
回復

使用道具 舉報

15#
ID:517758 發表于 2019-10-26 21:35 | 只看該作者
delay函數會造成后續代碼阻塞,一般會將代碼放到中斷中處理
回復

使用道具 舉報

16#
ID:630739 發表于 2019-10-27 00:36 | 只看該作者
會呀  延時不就是用代碼阻塞嘛
回復

使用道具 舉報

17#
ID:630813 發表于 2019-10-27 10:59 | 只看該作者
應該會吧
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品国产乱码久久久久久丨区2区 | 久久国产精品一区二区三区 | 一级黄色片在线免费观看 | 久久久精品视 | 香蕉久久网 | 久久网一区二区三区 | 91欧美精品成人综合在线观看 | 亚洲精品视频在线 | 成人免费视频网站在线看 | 日韩成人在线播放 | 韩日一区二区三区 | 亚洲丝袜天堂 | 中文字幕日韩欧美一区二区三区 | 国产乱码精品1区2区3区 | 国产一区二区精 | 国产毛片av | 91久久精品一区二区二区 | 欧美xxxx性 | 国产成人精品一区二区三区视频 | 中国一级特黄视频 | 日韩精品a在线观看图片 | 欧美一区二区三区在线观看 | 99re在线 | 一级高清免费毛片 | www.黄色网 | 三级在线免费 | 在线欧美 | 国产精品成人一区二区 | 久久久久久国产 | 国产伦精品一区二区三区视频金莲 | 国产第一页在线观看 | 97色在线视频 | 一区二区电影 | 亚洲视频在线一区 | 97国产精品 | 日韩久草 | 欧美午夜精品久久久久久浪潮 | 国内精品在线视频 | 亚洲国产精品久久久 | 丝袜一区二区三区 | 欧美日韩三区 |