xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_timer.h
浏览该文件的文档.
1
12
13#ifndef __XT_TIMER_H__
14#define __XT_TIMER_H__
15
16/* ==================== [Includes] ========================================== */
17
18#include "xtiny.h"
19#if (XT_TASK_ENABLE_OS)
20#include "cmsis_os2.h"
21#endif
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
33
34/* ==================== [Defines] =========================================== */
35
36#define XT_TIMER_INVALID_ID ((uint32_t)0U)
37
38/* ==================== [Typedefs] ========================================== */
39
45typedef void (*xt_timer_cb_t)(void *user_data);
46
47/* ==================== [Global Prototypes] ================================= */
48
52void xt_timer_setup(void);
53
62uint32_t xt_timer_start(xt_timer_cb_t timer_cb, void *user_data, uint32_t timeout_ms);
63
69void xt_timer_stop_no_safe(uint32_t timer_id);
70
77uint32_t xt_timer_remain(uint32_t timeout_tick);
78
84uint32_t xt_timer_handler(void);
85
86#define xt_timer_stop(timer_id) do { \
87 uint32_t _xt_tmp_id_ = (timer_id); \
88 if (_xt_tmp_id_ != XT_TIMER_INVALID_ID) { \
89 xt_timer_stop_no_safe(_xt_tmp_id_); \
90 (timer_id) = XT_TIMER_INVALID_ID; \
91 } \
92} while (0)
93
94/* ==================== [Macros] ============================================ */
95 /* xt_timer */
97
98#ifdef __cplusplus
99} /* extern "C" */
100#endif
101
102#endif /* __XT_TIMER_H__ */
uint32_t xt_timer_remain(uint32_t timeout_tick)
获取剩余超时 tick 数
void xt_timer_setup(void)
初始化软件定时器模块
uint32_t xt_timer_start(xt_timer_cb_t timer_cb, void *user_data, uint32_t timeout_ms)
启动一个软件定时器
void(* xt_timer_cb_t)(void *user_data)
软件定时器回调函数类型
uint32_t xt_timer_handler(void)
定时器主循环处理函数
void xt_timer_stop_no_safe(uint32_t timer_id)
停止软件定时器(无安全检查版本)
XTINY 总头文件