色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FreeRTOS中相對延時與絕對延時的區別

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-12 10:32 ? 次閱讀


相信許多朋友都有過這么一個需求:固定一個時間(周期)去處理某一件事情。

比如:固定間隔10ms去采集傳感器的數據,然后通過一種算法計算出一個結果,最后通過指令發送出去。

你會通過什么方式解決呢?

Ⅰ解決辦法

很多人肯定首先想到的是:利用定時器,定時10ms中斷,在中斷里面處理。

這種利用定時器中斷解決的辦法,在處理程序耗時很短(微秒級一下)的情況下是可以的。但是,如果處理程序耗時較長(幾十微妙,甚至毫秒級),顯然在中斷里面處理不現實。

因此,就引出了今天的絕對延時。在實時操作系統FreeRTOS任務中,利用vTaskDelayUntil絕對延時即可完美解決這個問題。

Ⅱ相對延時和絕對延時的含義

本文拿FreeRTOS中相對延時vTaskDelay函數,絕對延時vTaskDelayUntil函數來說明。

相對延時:指每次延時都是從執行函數vTaskDelay()開始,直到延時指定的時間(參數:滴答值)結束。

絕對延時:指每隔指定的時間(參數:滴答值),執行一次調用vTaskDelayUntil()函數的任務。

文字描述可能不夠直觀理解,下面章節結合代碼例子、延時值(IO高低變化波形)、任務執行圖來詳細講述一下他們的區別。

Ⅲ相對延時和絕對延時區別

以實際代碼為例說明:一個任務中,添加一個10ms系統延時,然后,在執行任務(耗時1ms左右,例子以延時代替)。

相對延時代碼

絕對延時代碼

提示:

1.TestDelay這個延時函數僅僅用于測試(延時1ms),用于代替采集、算法、發送等耗時時間。

2.兩個代碼唯一區別在于系統延時不同,一個vTaskDelay(10);,一個vTaskDelayUntil(&xLastWakeTime, 10);

3.系統時鐘頻率為1000,也就是上面系統延時10個滴答,即10ms。

看到代碼,你想到了他們輸出結果的差異嗎?

來看下結果的差異:用PA0這個引腳輸出的高低電平,得出延時時間。

相對延時結果

絕對延時結果

結果為:相對延時的周期為系統延時10ms +執行任務1ms的時間,總共11ms時間。絕對延時的周期即為10ms時間.

換一種方式看區別

如果上面的區別還沒明白,再來講一個更容易理解的區別,通過文字 +任務執行圖來說明。

1.相對延時

先看任務執行圖,按照上面代碼的方式呈現:

這里會牽涉到操作系統任務切換、高優先級任務搶占等一些原理,若不了解,請轉移直到了解再回來。

上電,TEST任務進入延時(阻塞)狀態,此時系統執行其他就緒任務。FreeRTOS內核會周期性的檢查TEST任務的阻塞是否達到,如果阻塞時間達到,則將TEST任務設置為就緒狀態,如果就緒任務中TEST任務的優先級最高,則會搶占CPU,再次執行任務主體代碼,不斷循環。

TEST任務每次系統延時都是從調用延時函數vTaskDelay()開始算起的,所以叫相對延時。

從上圖可以看出:

如果執行TEST任務的過程中發生中斷,或者具有更高優先級的任務搶占了,那么TEST任務執行的周期就會變長,所以使用相對延時函數vTaskDelay(),不能周期性的執行TEST任務。

2.絕對延時

代碼中定義的變量xLastWakeTime,其實是用來保存上一次的系統計數器值(方便檢測下一個延時時間是否到來)。

和上面相對延時程序執行圖比較,可以看出,系統延時的時間包含了程序執行的時間。即時中途有中斷,或更高優先級任務打斷,不會影響下一次執行的時間(也就是這個周期不會變,當然,打斷時間不能超過系統延時值)。

提示:圖片中添加了一段話:一般來說,程序執行時間要小于總間隔時間(10ms)。

如果打斷時間太長,回來之后延時都超過了,則會立馬執行程序,不會再延時(任務不會再阻塞延時)。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2550

    文章

    51035

    瀏覽量

    753077
  • FreeRTOS
    +關注

    關注

    12

    文章

    484

    瀏覽量

    62140
  • Test
    +關注

    關注

    0

    文章

    80

    瀏覽量

    26958
收藏 人收藏

    評論

    相關推薦

    FPGA延時Verilog HDL實現

    可以在任意時刻啟動,可以重復啟動,延時時長可調,單位可切換(ms/us),在50MHz時鐘下的延時范圍是1ms-85899ms/1us-85899us。
    的頭像 發表于 11-05 11:26 ?224次閱讀

    延時開關需要零線嗎為什么

    延時開關是一種常見的電氣控制元件,廣泛應用于各種電氣設備和系統。它的作用是在電路引入一定的延時,以實現對電路的控制和保護。延時開關的種類
    的頭像 發表于 08-19 15:56 ?430次閱讀

    延時開關接線技巧與注意事項有哪些

    延時開關的接線技巧與注意事項是確保延時開關正確安裝和穩定運行的關鍵。 一、延時開關接線技巧 1. 理解延時開關的基本結構 延時開關通常包含多
    的頭像 發表于 08-19 15:54 ?778次閱讀

    延時開關改手動開關怎么接線

    延時開關和手動開關是兩種不同類型的開關,它們的工作原理和接線方式也有所不同。在某些情況下,我們可能需要將延時開關改為手動開關,以滿足特定的使用需求。 一、延時開關和手動開關的區別 工作
    的頭像 發表于 08-19 15:49 ?622次閱讀

    延時開關怎么調時間長短

    延時開關是一種常見的電子控制設備,廣泛應用于各種場合,如照明、空調、風扇等。它可以根據用戶的需求,設定一定的延時時間,實現自動控制。 一、延時開關的工作原理 延時開關的基本組成
    的頭像 發表于 08-19 15:46 ?1558次閱讀

    延時開關上l和a是什么意思

    延時開關是一種常見的電子控制元件,廣泛應用于各種電子設備和系統。它可以實現對電路的自動控制,使電路在一定的延時后自動接通或斷開。在延時開關的標識
    的頭像 發表于 08-19 15:45 ?5582次閱讀

    揭秘:單片機硬件與軟件延時之大不同!

    在嵌入式項目中,軟件開發基本上都會使用到延時,那么,該用軟件延時還是硬件延時?它們又有什么區別呢?今天就來講講關于硬件延時和軟件
    的頭像 發表于 07-25 08:11 ?830次閱讀
    揭秘:單片機硬件與軟件<b class='flag-5'>延時</b>之大不同!

    斷電延時繼電器的實際應用

    斷電延時繼電器作為一種常見的電器設備,在現代生活中有著廣泛的應用。它通過控制電路的開關時間來實現電器設備的延時關閉,從而達到省電、安全等目的。以下將結合多個應用實例,詳細闡述斷電延時繼電器的實際應用。
    的頭像 發表于 07-17 16:51 ?952次閱讀

    如何確定時間繼電器的延時范圍

    時間繼電器,作為電氣控制系統不可或缺的一部分,其延時功能對于系統的穩定運行和精確控制起著至關重要的作用。延時范圍的確定不僅影響著系統的響應速度和準確性,還關系到整個系統的安全性和可靠性。因此,本文
    的頭像 發表于 06-29 14:24 ?623次閱讀

    延時繼電器工作原理及應用實例

    延時繼電器是一種電氣控制元件,它能夠在接收到啟動信號后,并非立即執行動作(如閉合或斷開觸點),而是在經過預設的時間延遲后才執行相應操作。延時繼電器廣泛應用于各類自動控制系統和保護系統,實現時間控制
    的頭像 發表于 06-23 11:54 ?2641次閱讀

    延時繼電器與時間繼電器的區別

    在電氣控制系統延時繼電器和時間繼電器都是重要的電氣元件,它們各自具有獨特的功能和應用場景。然而,由于它們在名稱和功能上存在一定的相似性,導致許多人在實際應用容易混淆。本文將對延時
    的頭像 發表于 05-24 16:27 ?1225次閱讀

    延時保險絲的工作原理 延時保險絲和普通保險絲的區別

    延時保險絲的工作原理 延時保險絲和普通保險絲的區別? 延時保險絲是一種常見的電子元件,廣泛應用于各種電子設備。它的主要作用是在電流突然超過
    的頭像 發表于 03-05 17:06 ?5389次閱讀

    時間繼電器通電延時與斷電延時區別

    時間繼電器通電延時與斷電延時區別? 時間繼電器是一種常用的控制設備,可用于各種延時應用。常見的時間繼電器主要包括通電延時繼電器和斷電
    的頭像 發表于 02-04 13:43 ?4604次閱讀

    延時繼電器工作原理 延時繼電器的接法和用途

    延時繼電器是一種常用的電子設備,它能夠延遲觸發繼電器的動作,從而在電路中產生一定的延時效果。它在工業自動化控制、電氣設備保護、通信系統和家庭電器控制等領域中廣泛應用。 一、延時繼電器的工作原理
    的頭像 發表于 01-19 11:24 ?7252次閱讀

    延時繼電器工作原理 斷電延時繼電器原理

    延時繼電器工作原理 斷電延時繼電器原理? 延時繼電器是一種常用的電器元件,可用于各種電路控制和自動化控制系統。它在電路的作用是在斷電之后
    的頭像 發表于 12-26 15:26 ?2859次閱讀
    主站蜘蛛池模板: 久久亚洲精品成人综合| 菠萝菠萝蜜视频在线看1| 在线观看a视频| 一本道亚洲区免费观看| 伊人久久久久久久久久| 中国老女人xxhd69| jizzjizz3d动漫| 欧美日韩无套内射另类| 嫩草伊人久久精品少妇AV网站| 美女隐私黄www视频| 人C交ZZZ0OOZZZ000| 视频成人app永久在线观看| 偷拍 拍自 欧美色区| 亚洲精品久久久久中文字幕二区 | 亚洲国产成人精品无码区5566| 亚洲国产精品一区二区第一页| 一二三四在线播放免费观看中文版视频| 诱人的秘书BD在线观看| 99久久无码热高清精品| 国产精品免费大片| 精品无人区麻豆乱码1区2| 免费乱理伦片在线观看夜| 色美妞论坛| 制服的微热| 国产电影午夜成年免费视频| 花蝴蝶在线观看免费中文版高清| 大迪克黑人异族| 饥渴的护士自慰被发现| 欧美一区二区视频97色伦| 亚洲AV综合99一二三四区| 99久久无码热高清精品| 国内精品偷拍在线观看| 欧美亚洲日本日韩在线| 野花高清在线观看免费3中文| YELLOW日本免费观看播放| 国厂精品114福利电影| 欧美成人中文字幕在线看| 亚洲欧美日韩中字视频三区| 帝王受PLAY龙椅高肉NP| 噜噜噜狠狠夜夜躁精品| 亚洲色偷偷偷网站色偷一区人人藻 |