1 Star 0 Fork 2

MyGitee/stm32-task-timer-event

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
os_task_timer.h 2.42 KB
一键复制 编辑 原始数据 按行查看 历史
D37_lijiaqiang 提交于 2024-02-20 10:38 . version 1.0.0
#ifndef __OS_TASK_TIMER_H__
#define __OS_TASK_TIMER_H__
#include "stm32l4xx_hal.h"
// 定义任务队列大小
#define TASK_TIMER_SIZE (10)
// 定义任务ID
#define TASK_TIMER_ID_MAX
// 定义任务事件单位,默认时间和系统tick保持一致
#define TASK_TICK_INTERVAL (1)
// 定义任务定时器类型
typedef void (*func_t)(uint8_t *param_in);
// 定义任务定时器类型枚举
enum task_timer_type {
TASK_TIMER_TYPE_PERIOD, // 周期性定时器
TASK_TIMER_TYPE_ONE_TIME, // 单次定时器
TASK_TIMER_TYPE_MAX,
};
// 定义任务定时器结果枚举
enum os_task_timer_result {
STATUS_ERR, // 错误
STATUS_OK, // 正常
STATUS_TASK_MAXIMUM, // 任务数量超过最大值
STATUS_TASK_FUNC_NULL, // 运行函数体为空
STATUS_TASK_ID_ERR, // 任务ID错误
STATUS_TASK_DELETED_RESUME, // 删除正在运行任务
STATUS_MAX,
};
// 定义任务标志位枚举
enum os_task_flag {
TASK_FLAG_INIT, // 默认值
TASK_FLAG_READY, // 任务就绪
TASK_FLAG_SUSPEND, // 任务挂起
TASK_FLAG_EXECUTE, // 任务执行
TASK_FLAG_EXIT, // 任务退出
TASK_FLAG_MAX,
};
// 定义定时器超时状态枚举
enum os_tasktimeout {
TIMER_NOT_OVERTIME, // 定时器未超时
TIMER_OVERTIME, // 定时器超时
};
// 定义任务属性结构体
struct os_task_attr {
uint8_t task_id; // 任务id,用于退出任务
enum os_task_flag task_flag; // 任务标记
enum task_timer_type timer_type; // 定时器类型
enum os_task_timer_result task_result; // 任务状态
uint8_t *params; // 任务参数
int32_t timeout; // 任务超时,非周期任务置0
int32_t timeout_reload; // 任务超时重新加载值
enum os_task_timeout overtime; // 定时器超时
task_func_t task_enter_func; // 任务函数入口
task_func_t task_callback_func; // 任务函数回调
};
// 获取已使用任务数
uint8_t os_task_used_count(void);
// 创建任务
struct os_task_attr *os_task_create(struct os_task_attr *task_attr, uint8_t priority);
// 删除任务
enum os_task_timer_result os_task_deleted(uint8_t task_id);
// 执行任务
void task_timer_execute(uint8_t index);
// 更新任务超时
void os_task_timeout_update(void);
// 设置任务超时
void os_task_timer_timeout_set(uint8_t index, int32_t timeout);
// 恢复任务
void os_task_timer_resume(uint8_t id);
// 挂起任务
void os_task_timer_suspend(uint8_t id);
#endif // _OS_TASK_TIMER_H_
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/dc00700/stm32-task-timer-event.git
git@gitee.com:dc00700/stm32-task-timer-event.git
dc00700
stm32-task-timer-event
stm32-task-timer-event
master

搜索帮助