os_delay
所属模块:任务管理 | 类型:任务延时函数
函数简介
os_delay 用于使当前任务进入延时等待状态。
任务会在指定 tick 时间后由系统调度器自动唤醒,重新进入就绪状态。
该接口基于统一等待机制 os_wait 实现,是任务延时的基础API之一。
函数原型
void os_delay(u16 tick);
源码实现
void os_delay(u16 tick)
{
/* 0 tick 直接返回 */
if(tick != 0)
{
/* 当前任务合法性检查 */
if(OS_CURRENT_TASK < OS_PROCESS_MAX+2)
{
/* 进入统一等待核心 */
os_wait(WAIT_DELAY, OS_INVALID_ID, tick);
}
}
}
使用示例
void task_demo()
{
os_delay(10); // 延时10个tick
}
注意事项
tick 为系统节拍单位,不同系统配置下对应的实际时间长度可能不同。
建议结合 os_ms_to_tick 使用。