HW_Lib/lib/inc/task/task.h

115 lines
2.8 KiB
C
Raw Normal View History

2024-05-10 05:47:39 +00:00
#ifndef TASK_H
#define TASK_H
2024-05-20 13:53:19 +00:00
#ifdef __cplusplus
extern "C" {
#endif
2024-05-10 05:47:39 +00:00
#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;
};
2024-06-22 03:08:31 +00:00
/**
* @brief
* @param TicksFunc: []
* @return TaskStatus_t
* @example TaskInit(GetPlatformTicks);
*/
2024-05-10 05:47:39 +00:00
TaskStatus_t TaskInit(PlatformTicksFunc_t TicksFunc);
2024-06-22 03:08:31 +00:00
/**
* @brief
* @param task: [/]
* @param time: []
* @param runcnt: [] -10
* @param callback: []
* @param userdata: []
* @return TaskStatus_t
* @example TaskCreat(&myTask, 100, -1, myCallbackFunc, &myData);
*/
2024-05-10 05:47:39 +00:00
TaskStatus_t TaskCreat(Task_t *task, TaskTime_t time, TaskCnt_t runcnt, Task_Callback_t callback, void *userdata);
2024-06-22 03:08:31 +00:00
/**
* @brief
* @param task: []
* @return TaskStatus_t
* @example TaskAdd(&myTask);
*/
2024-05-10 05:47:39 +00:00
TaskStatus_t TaskAdd(Task_t *task);
2024-06-22 03:08:31 +00:00
/**
* @brief
* @param task: []
* @return TaskStatus_t
* @example TaskDel(&myTask);
*/
2024-05-10 05:47:39 +00:00
TaskStatus_t TaskDel(Task_t *task);
2024-06-22 03:08:31 +00:00
/**
* @brief
* @param task: []
* @return TaskStatus_t
* @example TaskStart(&myTask);
*/
2024-05-10 05:47:39 +00:00
TaskStatus_t TaskStart(Task_t *task);
2024-06-22 03:08:31 +00:00
/**
* @brief
* @param task: []
* @return TaskStatus_t
* @example TaskStop(&myTask);
*/
2024-05-10 05:47:39 +00:00
TaskStatus_t TaskStop(Task_t *task);
2024-06-22 03:08:31 +00:00
/**
* @brief
* @param task: []
* @param runcnt: []
* @return TaskStatus_t
* @example TaskSetCnt(&myTask, 5);
*/
2024-05-10 05:47:39 +00:00
TaskStatus_t TaskSetCnt(Task_t *task, TaskCnt_t runcnt);
2024-06-22 03:08:31 +00:00
/**
* @brief
* @param task: []
* @param time: []
* @return TaskStatus_t
* @example TaskSetTime(&myTask, 50);
*/
2024-05-10 05:47:39 +00:00
TaskStatus_t TaskSetTime(Task_t *task, TaskTime_t time);
2024-06-22 03:08:31 +00:00
/**
* @brief
* @return TaskStatus_t
* @example TaskRun();
*/
2024-05-10 05:47:39 +00:00
TaskStatus_t TaskRun(void);
2024-06-22 03:08:31 +00:00
2024-05-20 13:53:19 +00:00
#ifdef __cplusplus
}
#endif
2024-05-10 05:47:39 +00:00
#endif //TASK_H