os_sec_to_tick

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

API Metadata

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

函数简介

os_sec_to_tick 用于将秒转换为系统 Tick 数。

该函数基于当前定时器计数值计算单个 Tick 的实际毫秒长度,从而推导出 1 秒对应的 Tick 数。

常用于长时间延时与周期任务调度。

函数原型

u16 os_sec_to_tick(u8 sec);

参数说明

参数 说明
sec 输入的秒数

返回值

返回对应的 Tick 数。

源码实现

u16 os_sec_to_tick(u8 sec) { u16 tick_value; u16 tick_ms; u16 tick_per_sec; tick_value = OS_T0_TH0; tick_value <<= 8; tick_value += OS_T0_TL0; tick_ms = (65536 - tick_value) / 1000; if(tick_ms == 0) { tick_ms = 1; } tick_per_sec = 1000 / tick_ms; return tick_per_sec * sec; }

使用示例

void task_demo() { u16 tick = os_sec_to_tick(2); os_task_delay(tick); }

注意事项

转换结果依赖系统 Tick 精度,若定时器配置变化,结果会相应变化。

相关推荐