
# 编程实例
#### 实例描述
在下面的例子中，介绍了时间管理的基本方法，包括：
1. 时间转换：将毫秒数转换为Tick数，或将Tick数转换为毫秒数。
2. 时间统计：每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
```
#### 完整实例代码
[sample_time.c](https://support.huaweicloud.com/kernelmanual-LiteOS/resource/sample_time.c)
