• IIANews微官網
      掃描二維碼 進入微官網
      IIANews微信
      掃描二維碼 關注微信
      移動客戶端
    • English
    2022 華南展招展書
    嵌入式系統

    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  我要反饋
    最新視頻
    仙工智能激光 SLAM 全向潛伏頂升式搬運機器人之頂升搬運   
    萬可群英譜 | 打區域特色戰,實現高效管理   
    世強
    魏德米勒工業物聯網解決方案
    施耐德電氣2022 綠色智能制造創贏計劃
    西克
    福祿克-Fluke TiS75+/55+ 紅外熱像儀
    專題報道
    《建筑是凝固的音樂》ABB電氣系列大片上映
    《建筑是凝固的音樂》ABB電氣系列大片上映 ABB 網羅了遍布全球的創新建筑案例,通過精心制作的《建筑是凝固的音樂》系列視頻,向大家揭秘世界上一些獨特建筑及其建筑師的幕后故事,帶領大家一起領略那些歷久彌新、永不過時的建筑設計和解決方案。
    企業通訊
    2022 ABB電氣自動化行業前沿解決方案智享會
    2022 ABB電氣自動化行業前沿解決方案智享會

    2022年,ABB電氣自動化行業前沿解決方案智享會以“智以行遠,數賦新能”為主題,圍繞數字化轉型、能源轉型、新能源發展以

    2022 ABB電氣自動化行業前沿解決方案智享會-通用機械行業專場
    2022 ABB電氣自動化行業前沿解決方案智享會-通用機械行業專場

    2022年,ABB電氣自動化行業前沿解決方案智享會以“智以行遠,數賦新能”為主題,圍繞數字化轉型、能源轉型、新能源發展以

    在線會議
    熱門標簽

    社區

    国产一级黄片