XFusion API v1.3.0
载入中...
搜索中...
未找到
examples/osal/timer/main/xf_main.c

xf_osal 定时器示例。

1
17/* ==================== [Includes] ========================================== */
18
19#include "xf_hal.h"
20#include "xf_osal.h"
21
22/* ==================== [Defines] =========================================== */
23
24#define TAG "main"
25
26#define XF_OSAL_CHECK(x) if (x != XF_OK)\
27{\
28 XF_LOGE(TAG, "xf check error: %d", x);\
29 return;\
30}
31
32/* ==================== [Typedefs] ========================================== */
33
34/* ==================== [Static Prototypes] ================================= */
35
36void timer1(void *argument);
37void timer2(void *argument);
38
39/* ==================== [Static Variables] ================================== */
40
41static xf_osal_timer_t timer = NULL;
42
43/* ==================== [Macros] ============================================ */
44
45/* ==================== [Global Functions] ================================== */
46
47void xf_main(void)
48{
49 xf_osal_timer_attr_t attr1 = {
50 .name = "timer1",
51 };
52 xf_osal_timer_attr_t attr2 = {
53 .name = "timer2",
54 };
56 XF_LOGI(TAG, "timer: %p", timer);
57 if (timer == NULL) {
58 XF_LOGE(TAG, "xf check error: %d", timer);
59 return;
60 }
62 if (timer_2 == NULL) {
63 XF_LOGE(TAG, "xf check error: %d", timer_2);
64 return;
65 }
66 const char *name = xf_osal_timer_get_name(timer);
67 XF_LOGI(TAG, "timer name: %s", name);
68 name = xf_osal_timer_get_name(timer_2);
69 XF_LOGI(TAG, "timer name: %s", name);
71 XF_OSAL_CHECK(xf_osal_timer_start(timer_2, 300U));
72}
73
74/* ==================== [Static Functions] ================================== */
75
76void timer1(void *argument)
77{
78 static uint32_t count = 0;
79 count++;
80 XF_LOGI(TAG, "timer1 count: %ld", count);
81}
82
83void timer2(void *argument)
84{
85 static uint32_t count = 0;
86 count++;
87 XF_LOGI(TAG, "timer2 count: %ld", count);
88 if (count % 10 == 0 && count < 40) {
91 } else {
93 }
94 }
95 if (count == 40) {
97 }
98}
void xf_main(void)
Definition xf_main.c:28
xf_err_t xf_osal_timer_delete(xf_osal_timer_t timer)
删除定时器。
xf_err_t xf_osal_timer_start(xf_osal_timer_t timer, uint32_t ticks)
启动或重新启动定时器。
void * xf_osal_timer_t
定时器句柄。
xf_osal_timer_t xf_osal_timer_create(xf_osal_timer_func_t func, xf_osal_timer_type_t type, void *argument, xf_osal_timer_attr_t *attr)
创建并初始化定时器。
uint32_t xf_osal_timer_is_running(xf_osal_timer_t timer)
检查定时器是否正在运行。
xf_err_t xf_osal_timer_stop(xf_osal_timer_t timer)
停止定时器。
const char * xf_osal_timer_get_name(xf_osal_timer_t timer)
获取定时器的名称。
@ XF_OSAL_TIMER_PERIODIC
#define TAG
Definition xf_main.c:24
#define XF_OSAL_CHECK(x)
Definition xf_main.c:26
void timer1(void *argument)
Definition xf_main.c:76
static xf_osal_timer_t timer
Definition xf_main.c:41
void timer2(void *argument)
Definition xf_main.c:83
定时器的属性结构。
#define XF_LOGI(tag, format,...)
#define XF_LOGE(tag, format,...)