#ifndef TASK_H #define TASK_H #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); #endif //TASK_H