• IIANews微官網
    掃描二維碼 進入微官網
    IIANews微信
    掃描二維碼 關注微信
    移動客戶端
  • English
2021 OEM
嵌入式系統

MCU硬件延時和軟件延時有什么區別?

  2021年06月23日  

圖片源于網絡

  在嵌入式項目中,軟件開發基本上都會使用到延時,那么,該用軟件延時還是硬件延時?它們又有什么區別呢?

硬件和軟件延時

  延時的種類很多,先給大家普及一下延時相關概念和分類。

1.硬件延時

  指利用具有計數功能的硬件進行延時。比如:定時器(Timer)、 實時時鐘(RTC)、 系統滴答定時器(SysTick)等具有計數功能的硬件。

2.軟件延時

  相對硬件延時而言,軟件延時就是寫一段軟件代碼,通過消耗CPU時間進行延時。比如軟件延時函數:

阻塞和非阻塞延時

  實際應用中,延時分阻塞和非阻塞延時。

1.阻塞延時

  指CPU一直停留阻塞,不去做其它事情,直到延時結束結束。像上面那個軟件延時(Delay)就是一個典型的阻塞延時,一直消耗CPU,直到延時結束。

2.非阻塞延時

  指在延時期間,沒有阻塞CPU,也就是說CPU在延時期間可以執行其它代碼。比如:利用定時器中斷延時,只需要開啟定時器,在中斷(計數)到來之前,CPU可以執行其它代碼。

3.額外舉例

  a.利用定時器也能實現阻塞延時,比如STM32的HAL自帶的阻塞延時:

  b.利用RTOS自帶的系統延時實現非阻塞延時,這個實現原理實際是利用了硬件延時(系統滴答定時器)。

  當然,這個延時的原理(延時函數代碼)相對比較復雜,對于普通用戶只需要知道如何調用以及簡單原理即可。通常在一些RTOS的(Demo)例子的任務中都有系統延時,比如ucos非阻塞延時:

  再比如FreeRTOS非阻塞延時:

硬件和軟件延時區別

  通過以上分析,其實不難得出,硬件延時相對軟件延時更普遍。

  1.軟件相對硬件延時精度更差;
  2.軟件延時為阻塞延時,硬件延時可阻塞,也可非阻賽延時;
  3.硬件延時應用更靈活、更廣泛;

  實際應用中,硬件延時、非阻塞延時相對更普遍。

標簽:嵌入式  MCU  我要反饋
最新視頻
萬可群英譜:把握機遇,直面挑戰   
施耐德電氣線上工博!都「全」了,只等你來   
世強
施耐德電氣PCB盤古
施耐德電氣線上工博會
魏德米勒聯接咨詢服務
西克
專題報道
《建筑是凝固的音樂》ABB電氣系列大片上映
《建筑是凝固的音樂》ABB電氣系列大片上映 ABB 網羅了遍布全球的創新建筑案例,通過精心制作的《建筑是凝固的音樂》系列視頻,向大家揭秘世界上一些獨特建筑及其建筑師的幕后故事,帶領大家一起領略那些歷久彌新、永不過時的建筑設計和解決方案。
企業通訊
2021施耐德電氣線上工博來襲!
2021施耐德電氣線上工博來襲!

12月1日起,施耐德電氣線上工博將為您呈現一場以 “綠色智能制造,共塑可持續未來”為主題的云端盛宴。 憑借在綠色智

2021 OEM機械設計技術研討會-云會議
2021 OEM機械設計技術研討會-云會議

“2021OEM機械設計技術研討會”以“縱深推進?多維賦能 數字化重塑設備制造”為主題, 邀請多家知名企業與來自紡織機械

在線會議

社區

久久久久亚洲AV无码专区电影