1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #ifndef __LH_TASKMANAGER_H__
- #define __LH_TASKMANAGER_H__
- /*
- 文件说明:任务管理器源文件
- 作者: 刘浩
- 原创代码:使用请保留此段
- 更新日期:2020年3月27日
- 注意:本程序在项目实践测试过,能够正常稳定运行
- 目前支持MCU型号:STC Atmel stm32 stm8 msp430 cc2530 新唐 NXP pic
- */
- #include "system.h"
- #define TaskNumber 10 //定义任务数量
- #define ENABLED_INTERRUPT__ __enable_irq();//开启全局中断
- #define DISABLE_INTERRUPT__ __disable_irq(); //关闭全局中断
- struct LiuHaoTaskStruct ;
- typedef struct LiuHaoTaskStruct TaskList_Items;
- typedef TaskList_Items *LH_TaskList;
- struct LiuHaoTaskStruct
- {
- int Task_ID;//pic单片机需要用int 其他单片机用char即可
- int Task_Time;
- int (*_Fun)(void);
- LH_TaskList LIst_Next;//指向下一个列表项
- };
- void TaskManager_Init(void); // 初始化任务管理器
- void TaskManager_Scheduling(void) ; // 任务调度管理器 放到定时器中断里面 滴答计数 进行调度
- void TaskManager_Run(void) ; // 任务执行器 放到主函数执行任务函数
- void Add_WaitList(LH_TaskList LHpStack) ; // 进入等待态 添加待执行的任务
- void Add_TimingList(LH_TaskList LHpStack) ; // 添加任务到定时区
- void Add_SuspendList(LH_TaskList LHpStack) ; // 进入挂起态 添加任务到挂起列表
- /***********************************************************************
- 创建任务函数,将某个函数作为任务,可以完成定时调用等功能
- 参数:Task_ID:任务Task_ID,不能重复,否侧将创建失败
- _Fun: 用户任务函数名
- time: 创建后,延时time * 系统滴答时间 后执行 _Fun函数 ,如果是0,则暂时不执行,由Start_Tasks函数启动
- ***********************************************************************/
- char UserTask_Create(char id,int (*_Fun)(void),int time); // 用户创建普通任务
- /***********************************************************************
- 创建定时函数,延时time * 系统滴答时间 后,执行该函数*** 系统滴答时间一般由定时器定时一个10ms
- _Fun: 用户定时器任务函数名
- time: 创建后,延时time * 系统滴答时间 后执行 _Fun函数
- ***********************************************************************/
- char UserTimerTask_Create(int (*_Fun)(void),int time); // 创建定时器任务
- /***********************************************************************
- 让某个任务开始执行***
- id: 任务id
- time: 启动后,延时time * 系统滴答时间 后执行,如果为0,立刻执行
- ***********************************************************************/
- char Start_Tasks(char id,int time); // 启动(挂起)任务
- // 停止一个任务
- char Stop_Tasks(char id) ; // 将执行任务挂起(停止)
- // 删除任务
- char Delete_Tasks(char id) ; // 删除任务
- #endif
|