You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FreeRTOS中'tick'的定义及时长是多少?技术咨询

FreeRTOS中'tick'的定义及时长说明

一、什么是'tick'

FreeRTOS里的'tick'是系统的核心时间基准单位,由内核的周期性硬件定时器中断触发产生。它是实现任务调度、延时、超时检测等所有时间相关功能的基础——比如任务的时间片轮转调度、vTaskDelay()这类延时接口,都是基于tick来计数的。当vTaskStartScheduler()启动调度器后,内核便开始累计tick的数量,xTaskGetTickCount()和xTaskGetTickCountFromISR()返回的就是从这一刻起的累计tick总数。

二、tick的时长

tick的单周期时长并非固定值,完全由用户在FreeRTOS的配置文件FreeRTOSConfig.h中通过configTICK_RATE_HZ宏定义决定:

  • 该宏指定了每秒产生的tick数量,因此单个tick的时长计算公式为:1 / configTICK_RATE_HZ 秒
  • 举例:
    • 若configTICK_RATE_HZ设为1000,单个tick时长为1毫秒
    • 若configTICK_RATE_HZ设为100,单个tick时长为10毫秒

需要注意,tick频率的选择需要权衡:频率越高,系统时间精度越高,但内核中断的CPU开销也会越大,会占用更多系统资源。

内容的提问来源于stack exchange,提问作者CivFan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 16:25:21