-
Notifications
You must be signed in to change notification settings - Fork 8
/
atontimer.c API说明.txt
115 lines (108 loc) · 2.5 KB
/
atontimer.c API说明.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
atontimer.c
所有api:
uint8_t atomTimerRegister (ATOM_TIMER *timer_ptr);
uint8_t atomTimerCancel (ATOM_TIMER *timer_ptr);
uint32_t atomTimeGet(void);
void atomTimeSet(uint32_t new_time);
void atomTimerTick (void);
uint8_t atomTimerDelay (uint32_t ticks);
static void atomTimerCallbacks (void);
static void atomTimerDelayCallback (POINTER cb_data);
/*
*定时器注册.
*功能:注册一个定时回调函数.
*参数:
*typedef struct atom_timer
*{
* TIMER_CB_FUNC cb_func; // 回调函数
* POINTER cb_data; // Pointer to callback parameter/data
* uint32_t cb_ticks; // 回调时间参数 单位ticks 必须大于0
*
* // 内部数据
* struct atom_timer *next_timer; // Next timer in doubly-linked list
*} ATOM_TIMER;
*中断安全性:安全,但有可能和希望的时间不匹配
*返回:
* ATOM_OK Success
* ATOM_ERR_PARAM Bad parameters
*/
uint8_t atomTimerRegister (ATOM_TIMER *timer_ptr);
/*
*定时器取消
*功能:取消由atomTimerRegister (ATOM_TIMER *timer_ptr)注册的回调函数
*参数:
*typedef struct atom_timer
*{
* TIMER_CB_FUNC cb_func; // 回调函数
* POINTER cb_data; // Pointer to callback parameter/data
* uint32_t cb_ticks; // 回调时间参数 单位ticks
*
* // 内部数据
* struct atom_timer *next_timer; // Next timer in doubly-linked list
*} ATOM_TIMER;
*中断安全性:安全,但有可能和希望的时间不匹配
*返回:
* ATOM_OK 成功
* ATOM_ERR_PARAM 参数错误
* ATOM_ERR_NOT_FOUND 未发现注册的回调
*/
uint8_t atomTimerCancel (ATOM_TIMER *timer_ptr);
/*
*获取时间
*功能:获取system tick次数
*参数:void
*中断安全性:安全
*返回:
*system tick次数
*/
uint32_t atomTimeGet(void);
/*
*系统时间设定
*功能:获取system tick次数
*参数:设定的时间
*中断安全性:安全
*返回:
*system tick次数
*/
void atomTimeSet(uint32_t new_time);
/*
*系统tick处理函数
*功能:
*1.增加系统tick计时
*2.回调每个注册的回调函数
*参数:void
*返回:
*void
*用户不需要调用此函数
*/
void atomTimerTick (void);
/*
*延时函数
*功能:阻塞一个线程以给定的system tick数.
*参数:
*ticks数 必须大于0
*中断安全性:只能在线程中使用
*返回:
* ATOM_OK 成功
* ATOM_ERR_PARAM 参数错误
* ATOM_ERR_CONTEXT 没有在线程中调用
*/
uint8_t atomTimerDelay (uint32_t ticks);
/*
*系统处理定时注册回调函数的位置
*功能:
*找到所有回调函数并调用他们
*参数:void
*返回:void
*用户不需要调用此函数
*/
static void atomTimerCallbacks (void);
/*
*系统处理定时注册回调函数的位置
*功能:
*找到所有回调函数并调用他们
*参数:void
*返回:void
*用户不需要调用此函数
*/
static void atomTimerDelayCallback (POINTER cb_data);