XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_ttask.h
浏览该文件的文档.
1
12#ifndef __XF_TTASK_H__
13#define __XF_TTASK_H__
14
15/* ==================== [Includes] ========================================== */
16
17#include "../kernel/xf_task_kernel.h"
18
28#ifdef __cplusplus
29extern "C"
30{
31#endif
32
33/* ==================== [Defines] =========================================== */
34
39#define XF_TASK_TYPE_TTASK XF_TASK_TYPE_ttask
40#define XF_TTASK_INFINITE_LOOP ((uint32_t) - 1)
42/* ==================== [Typedefs] ========================================== */
43
47typedef struct _xf_ttask_config_t {
48 uint32_t count;
49 uint32_t delay_ms;
51
52/* ==================== [Global Prototypes] ================================= */
53
66 xf_task_manager_t manager, xf_task_func_t func, void *func_arg,
67 uint16_t priority, uint32_t delay_ms, uint32_t count)
68{
69 xf_ttask_config_t config = {.count = count, .delay_ms = delay_ms};
70 return xf_task_create_with_manager(manager, XF_TASK_TYPE_TTASK, func, func_arg, priority, &config);
71}
72
85 void *func_arg, uint16_t priority, uint32_t delay_ms)
86{
87 xf_ttask_config_t config = {.count = XF_TTASK_INFINITE_LOOP, .delay_ms = delay_ms};
88 return xf_task_create_with_manager(manager, XF_TASK_TYPE_TTASK, func, func_arg, priority, &config);
89}
90
101
109
119xf_err_t xf_ttask_set_count_max(xf_task_t task, uint32_t count_max);
120
121/* ==================== [Macros] ============================================ */
122
123#ifdef __cplusplus
124} /* extern "C" */
125#endif
126
132#endif // __XF_TASK_NOCONTEXT_H__
xf_err_t xf_ttask_set_count_max(xf_task_t task, uint32_t count_max)
设置 ttask 循环次数的上限。
Definition xf_ttask.c:87
uint32_t xf_ttask_get_count(xf_task_t task)
获取 ttask 循环次数。
Definition xf_ttask.c:78
xf_err_t xf_ttask_set_count(xf_task_t task, uint32_t count)
设置 ttask 循环次数。其不能超过循环次数的上限。
Definition xf_ttask.c:57
#define XF_TASK_TYPE_TTASK
ttask 类型值。 XF_TASK_TYPE_ttask 通过 xf_task_reg.inc 拼接而来。
Definition xf_ttask.h:39
static xf_task_t xf_ttask_create_loop_with_manager(xf_task_manager_t manager, xf_task_func_t func, void *func_arg, uint16_t priority, uint32_t delay_ms)
指定任务管理器创建循环 ttask。
Definition xf_ttask.h:83
#define XF_TTASK_INFINITE_LOOP
Definition xf_ttask.h:40
struct _xf_ttask_config_t xf_ttask_config_t
ttask 创建传输参数。
static xf_task_t xf_ttask_create_with_manager(xf_task_manager_t manager, xf_task_func_t func, void *func_arg, uint16_t priority, uint32_t delay_ms, uint32_t count)
指定任务管理器创建 ttask。
Definition xf_ttask.h:65
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
Definition xf_err.h:69
ttask 创建传输参数。
Definition xf_ttask.h:47
uint32_t delay_ms
Definition xf_ttask.h:49
static void task(xf_task_t task)
Definition xf_main.c:45
xf_task_t xf_task_create_with_manager(xf_task_manager_t manager, xf_task_type_t type, xf_task_func_t func, void *func_arg, uint16_t priority, void *config)
在指定任务管理器下创建任务。
void(* xf_task_func_t)(xf_task_t task)
任务调用函数原型。
void * xf_task_manager_t
任务管理器句柄。
void * xf_task_t
任务句柄。