更新时间:2021-07-08 GMT+08:00
编程实例
实例描述
在下面的例子中,介绍了时间管理的基本方法,包括:
- 时间转换:将毫秒数转换为Tick数,或将Tick数转换为毫秒数。
- 时间统计:每Tick的Cycle数、自系统启动以来的Tick数和延迟后的Tick数。
编程示例
前提条件:
- 使用每秒的Tick数LOSCFG_BASE_CORE_TICK_PER_SECOND的默认值100。
- 配好OS_SYS_CLOCK系统主时钟频率。
时间转换:
VOID Example_TransformTime(VOID) { UINT32 ms; UINT32 tick; tick = LOS_MS2Tick(10000); // 10000ms转换为tick dprintf("tick = %d \n",tick); ms = LOS_Tick2MS(100); // 100tick转换为ms dprintf("ms = %d \n",ms); }
时间统计和时间延迟:
VOID Example_GetTime(VOID) { UINT32 cyclePerTick; UINT64 tickCount; cyclePerTick = LOS_CyclePerTickGet(); if(0 != cyclePerTick) { dprintf("LOS_CyclePerTickGet = %d \n", cyclePerTick); } tickCount = LOS_TickCountGet(); if(0 != tickCount) { dprintf("LOS_TickCountGet = %d \n", (UINT32)tickCount); } LOS_TaskDelay(200); tickCount = LOS_TickCountGet(); if(0 != tickCount) { dprintf("LOS_TickCountGet after delay = %d \n", (UINT32)tickCount); } }
结果验证
编译运行得到的结果为:
时间转换:
tick = 1000 ms = 1000
时间统计和时间延迟:
LOS_CyclePerTickGet = 495000 LOS_TickCountGet = 1 LOS_TickCountGet after delay = 201
完整实例代码
父主题: 时间管理