![](/img/trans.png)
[英]How to stop a freertos timer and start it again without resetting the current tick count to 0
[英]How long is a "tick" in FreeRTOS?
對於函數xTaskGetTickCount()
和xTaskGetTickCountFromISR()
, FreeRTOS 文檔沒有給出任何關於“滴答”是什么、它有多長的指示,也沒有任何指向查找位置的鏈接。
退貨:
自調用 vTaskStartScheduler 以來的滴答計數。
什么是 FreeRTOS 中的“滴答”? 多久了?
首先在 FreeRTOS 論壇的存檔線程中找到答案:
節拍頻率由 FreeRTOSConfig.h 中的 configTICK_RATE_HZ 設置。 此處描述了 FreeRTOSConfig.h 設置:
http://www.freertos.org/a00110.html
如果將configTICK_RATE_HZ 設置為 1000 (1KHz),則一個刻度為 1ms (千分之一秒)。 如果將 configTICK_RATE_HZ 設置為 100(100Hz),則一個滴答為 10ms(百分之一秒)。 等等。
從鏈接的 FreeRTOS 文檔中:
配置TICK_RATE_HZ
RTOS 節拍中斷的頻率。
滴答中斷用於測量時間。 因此,更高的滴答頻率意味着可以以更高的分辨率測量時間。 然而,高滴答頻率也意味着 RTOS kernel 將使用更多 CPU 時間,因此效率較低。 RTOS 演示應用程序都使用 1000Hz 的節拍率。 這用於測試 RTOS kernel 並且比通常要求的更高。
多個任務可以共享相同的優先級。 RTOS 調度程序將通過在每個 RTOS 節拍期間在任務之間切換來在具有相同優先級的任務之間共享處理器時間。 因此,高滴答率頻率也會減少分配給每個任務的“時間片”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.