os_ms_to_tick

所属模块:时间管理 | 类型:时间换算函数

API Metadata

函数ID:os_ms_to_tick
模块:time
类型:ms to tick conversion
嵌套深度:1

函数简介

os_ms_to_tick 用于将毫秒时间转换为系统 Tick 数,用于任务延时和调度计算。

该函数会根据当前系统定时器计数值计算单个 Tick 的实际毫秒长度,从而完成动态换算。

函数原型

u16 os_ms_to_tick(u16 ms);

参数说明

参数 说明
ms 输入的毫秒时间

返回值

返回对应的 Tick 数(向上取整)。

源码实现

u16 os_ms_to_tick(u16 ms) { u16 tick_time_us; u16 tick_value; u16 tick_ms; tick_value = OS_T0_TH0; tick_value = tick_value << 8; tick_value += OS_T0_TL0; tick_time_us = 65536 - tick_value; tick_ms = tick_time_us / 1000; if(tick_ms == 0) { tick_ms = 1; } return (ms + tick_ms - 1) / tick_ms; }

使用示例

void delay_task() { u16 tick = os_ms_to_tick(100); os_task_delay(tick); }

注意事项

Tick 计算依赖定时器当前计数值,若系统时钟配置变化,该函数结果会相应变化。

相关推荐