FreeRTOS——任务控制(2)

vTaskDelay

task.h

void vTaskDelay( const TickType_t xTicksToDelay );

vTaskDelay( 任务延时时间 );

必须将INCLUDE_vTaskDelay 定义为 1,此函数才可用。

按给定的tick 数延迟任务。任务保持阻塞的实际时间取决于 tick 频率。 常量 portTICK_PERIOD_MS 配合 tick 周期分辨率可用于从 tick 频率计算实际时间。

vTaskDelay() 会指定任务想要取消阻塞的时间,该时间是相对于 vTaskDelay() 被调用的时间。

例如,如果指定 时间块为 100 个 tick,那么在调用 vTaskDelay() 100 个 tick 后任务会取消阻塞。

vTaskDelay() 将 导致一个任务从调用 vTaskDelay() 时起阻塞特定的 tick 数。 因此,很难单独使用 vTaskDelay() 来生成固定的 执行频率,因为任务在调用 vTaskDelay() 后取消阻塞与该任务 再次调用 vTaskDelay() 之间的时间可能不是固定的 [ 该任务可能在两次调用之间 采用不同的代码路径,或者可能在每次执行时被打断或被抢占 的次数不同 ]。

vTaskDelayUntil

task. h

void vTaskDelayUntil( TickType_t *pxPreviousWakeTime,

const TickType_t xTimeIncrement );

vTaskDelayUntil( 指针,频率 );

INCLUDE_vTaskDelayUntil 必须被定义为 1 才能使用此函数。

将任

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值