HW_Lib/lib/inc/task/task.h

66 lines
1.4 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#ifndef TASK_H
#define TASK_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stdint.h"
#define true 0
#define false (-1)
//平台切换相关类型重定义
typedef int64_t TaskStatus_t;
typedef uint64_t TaskTime_t;
typedef int64_t TaskCnt_t;
typedef struct TaskList Task_t;
typedef uint64_t (*PlatformTicksFunc_t)(void);
typedef void (*Task_Callback_t)(Task_t *task, void *userdata);
struct TaskList {
Task_t *next;
uint8_t enable;
TaskCnt_t runcnt;
TaskTime_t lasttime;
TaskTime_t intervaltime;
Task_Callback_t callback;
void *userdata;
};
//时间基准注册建议1-10ms的基准
TaskStatus_t TaskInit(PlatformTicksFunc_t TicksFunc);
//创建任务
// time:间隔时间
// runcnt:执行次数 为-1无限制执行 为0只创建不运行
// callback:回调函数
// userdata:用户数据传参
TaskStatus_t TaskCreat(Task_t *task, TaskTime_t time, TaskCnt_t runcnt, Task_Callback_t callback, void *userdata);
//添加任务
TaskStatus_t TaskAdd(Task_t *task);
//删除任务
TaskStatus_t TaskDel(Task_t *task);
//重新开始以停止的任务
TaskStatus_t TaskStart(Task_t *task);
//暂停任务执行
TaskStatus_t TaskStop(Task_t *task);
//重设任务执行次数
TaskStatus_t TaskSetCnt(Task_t *task, TaskCnt_t runcnt);
//重设任务间隔时间
TaskStatus_t TaskSetTime(Task_t *task, TaskTime_t time);
//任务调度
TaskStatus_t TaskRun(void);
#ifdef __cplusplus
}
#endif
#endif //TASK_H