<blockquote id="ac2ws"><s id="ac2ws"></s></blockquote>
  • <samp id="ac2ws"></samp>
  • <xmp id="ac2ws">
    • 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  我要反饋
    最新視頻
    ifm UIT3全金屬超聲波傳感器,耐受高壓清洗及腐蝕性介質   
    帶您了解ABB塑殼斷路器Tmax XT   
    世強
    施耐德電氣PCB盤古
    施耐德電氣線上工博會
    魏德米勒聯接咨詢服務
    西克
    專題報道
    企業通訊
    2021 OEM機械設計技術研討會-云會議
    2021 OEM機械設計技術研討會-云會議

    過去兩年,全球政治經濟環境波動干擾了原始設備制造商的發展節奏,OEM企業在產能布局,技術創新和產業鏈整合能力的差別帶來生

    2021施耐德電氣線上工博來襲!
    2021施耐德電氣線上工博來襲!

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

    在線會議

    社區

    国产一级黄片
    <blockquote id="ac2ws"><s id="ac2ws"></s></blockquote>
  • <samp id="ac2ws"></samp>
  • <xmp id="ac2ws">