• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * @file hi_systick.h
3  *
4  * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED.
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 /**
19  * @defgroup systick System Tick Status
20  * @ingroup drivers
21  */
22 #ifndef __HI_SYSTICK_H__
23 #define __HI_SYSTICK_H__
24 #include <hi_types_base.h>
25 
26 /**
27 * @ingroup  systick
28 * @brief  Obtains systick currect value. CNcomment:获取systick当前计数值。CNend
29 *
30 * @par 描述:
31 * @li   Obtains the current count value of systick. The time of each value is determined by the systick clock source.
32 *       The systick clock is 32Khz, and the tick value is 1/32000 seconds.CNcomment:获取systick当前计数值。
33 每个值的时间由systick时钟源决定。systick时钟为32Khz,一个tick值为1/32000秒。CNend
34 * $li   After the system is powered on, systick immediately adds a count from 0.CNcomment:系统上电运行后,
35 systick立刻从0开始递增加一计数。CNend
36 *
37 * @attention The delay interface is invoked in the interface. Therefore, it is prohibited to invoke this interface in
38 *            the interrupt context.CNcomment:接口内调用了延时接口,所以禁止在中断上下文中调用该接口。CNend
39 * @param  None
40 *
41 * @retval #hi_u64 Indicates the obtained current count value.CNcomment:获取到的当前计数值。CNend
42 *
43 * @par 依赖:
44 *           @li hi_systick.h:Describes systick APIs.CNcomment:文件用于描述SYSTICK相关接口。CNend
45 * @see  hi_systick_clear。
46 */
47 hi_u64 hi_systick_get_cur_tick(hi_void);
48 
49 /**
50 * @ingroup  systick
51 * @brief  The value of systick is cleared.CNcomment:将systick计数值清零。CNend
52 *
53 * @par 描述:
54 *         The value of systick is cleared.CNcomment:将systick计数值清零。CNend
55 *
56 * @attention After the interface is returned, the clock cycles of three systick clocks need to be cleared.
57 CNcomment:接口返回后需要等三个systick的时钟周期才会完成清零。CNend
58 * @param  None
59 *
60 * @retval None
61 * @par 依赖:
62 *           @li hi_systick.h:Describes systick APIs.CNcomment:文件用于描述SYSTICK相关接口。CNend
63 * @see  hi_systick_get_cur_tick。
64 */
65 hi_void hi_systick_clear(hi_void);
66 
67 /**
68 * @ingroup  systick
69 * @brief Get the millisecond value counted by systick. CNcomment:获取以systick计数的毫秒值。CNend
70 *
71 * @par 描述:
72 * @li   Calculate the current millisecond value according to the current value of systick and the actual frequency of
73 32K.CNcomment:根据systick的当前值与32K实际的频率计算当前的毫秒值。CNend
74 *
75 * @attention The delay interface is invoked in the interface. Therefore, it is prohibited to invoke this interface in
76 *            the interrupt context.CNcomment:接口内调用了延时接口,所以禁止在中断上下文中调用该接口。CNend
77 * @param  None
78 *
79 * @retval #hi_u64 Indicates the obtained current millisecond.CNcomment:获取到的当前毫秒计数值。CNend
80 *
81 * @par 依赖:
82 *           @li hi_systick.h:Describes systick APIs.CNcomment:文件用于描述SYSTICK相关接口。CNend
83 * @see  hi_systick_get_cur_ms。
84 */
85 hi_u64 hi_systick_get_cur_ms(hi_void);
86 
87 /**
88 * @ingroup  systick
89 * @brief  Sets the real time of the system, base on systick, not effect by deep sleep.
90 CNcomment:设置系统实时时间,基于systick,不受深睡影响。CNend
91 *
92 * @par 描述:
93 *           Sets the real time of the system.CNcomment:设置系统实时时间。CNend
94 *
95 * @attention None
96 * @param  seconds            [IN] type #hi_u32,set the real time of the system to this value.
97 CNcomment:将系统实时时间设置为该值。CNend
98 *
99 * @retval None.
100 * @par 依赖:
101 *           @li hi_systick.h:Describes systick APIs.CNcomment:文件用于描述SYSTICK相关接口。CNend
102 */
103 hi_void hi_systick_set_real_time(hi_u32 sec);
104 
105 /**
106 * @ingroup  systick
107 * @brief  Obtains the real time of the system, base on systick, not effect by deep sleep
108 CNcomment:获取系统实时时间(单位:s),基于systick,不受深睡影响。CNend
109 *
110 * @par 描述:
111 *           Obtains the real time of the system (unit: s).CNcomment:获取系统实时时间(单位:s)。CNend
112 *
113 * @attention None
114 * @param None
115 *
116 * @retval #hi_u32 Real time of the system.CNcomment: 系统实时时间。CNend
117 * @par 依赖:
118 *           @li hi_systick.h:Describes systick APIs.CNcomment:文件用于描述SYSTICK相关接口。CNend
119 */
120 hi_u32 hi_systick_get_real_time(hi_void);
121 
122 #endif
123