os_tick_get

所属模块:系统时间 | 类型:时间查询函数

API Metadata

函数ID:os_tick_get
模块:time
类型:tick read
嵌套深度:1

函数简介

os_tick_get 用于获取系统当前 tick 计数值(高16位 + 低16位)。

该函数通过关闭中断保证读取过程的原子性,避免在读取过程中 tick 发生变化。

常用于时间统计、运行时间计算与调度调试。

函数原型

void os_tick_get(u16 *high, u16 *low);

参数说明

参数 说明
high 输出参数:tick计数高16位
low 输出参数:tick计数低16位

返回值

无返回值。

源码实现

/*------------------------------------------------------------------------ | FILE DESCRIPTION | ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | - File name : tick_get.c | - Author : 谭舒 | - Update date : 2026-09-19 | - Copyright(C) : 2026 HRTOS. All rights reserved. ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | INCLUDES | ------------------------------------------------------------------------*/ #include "hrtos_internal.h" /*------------------------------------------------------------------------ | API FUNCTIONS | ------------------------------------------------------------------------*/ /** * @brief 获取当前系统 Tick 计数值。 * * @param[out] high Tick 计数高 16 位。 * @param[out] low Tick 计数低 16 位。 * * @return None。 * * @note 读取系统 Tick 计数过程中临时关闭中断, * 以保证高、低 16 位数据的一致性。 * 数据读取完成后恢复进入函数前的中断使能状态。 */ void os_tick_get(u16 *high,u16 *low) //时间片数 { u8 i; i=EA; EA = 0; *high = OS_TICK_COUNT_H;//系统时钟计数高16位 *low = OS_TICK_COUNT_L;//系统时钟计数低16位 EA = i; } /*------------------------------------------------------------------------ | END OF FILE: tick_get.c | ------------------------------------------------------------------------*/

使用示例

void debug_time() { u16 h, l; os_tick_get(&h, &l); // 计算或打印tick }

注意事项

该函数在读取过程中会关闭中断以保证数据一致性,执行时间极短,不影响系统实时性。

相关推荐