/* * timeSliceOffset.h * * Created on: 2024年6月22日 * Author: psx */ #ifndef DRIVERS_TIMESLICEOFFSET_TIMESLICEOFFSET_H_ #define DRIVERS_TIMESLICEOFFSET_TIMESLICEOFFSET_H_ #include "debug.h" #include "uart_dev.h" /**时间片类*/ typedef struct _STR_TimeSliceOffset{ volatile unsigned char runFlag; /**< 可运行标志(1:可运行/0:不可运行) */ volatile unsigned short count; /**< 计数器 */ unsigned short reloadVal; /**< 重载值 */ void (*taskFunc)(void); /**< 任务函数的函数指针 */ struct _STR_TimeSliceOffset* pNext; /**< 指向下一个对象 */ }STR_TimeSliceOffset; /********************************************函数声明********************************************/ /* 注册 */ int TimeSliceOffset_Register(STR_TimeSliceOffset* pTSlice, \ void (*taskFunc)(void), \ unsigned short reloadVal, \ unsigned short offset); /* 取消注册 */ int TimeSliceOffset_Unregister(STR_TimeSliceOffset* pTSlice); /* 启动时间片错位轮询(代替main的while循环) */ void TimeSliceOffset_Start(void); /* 时间片生成(放到systick或定时器中断处理函数内) */ void TimeSliceOffset_Produce(void); #endif /* DRIVERS_TIMESLICEOFFSET_TIMESLICEOFFSET_H_ */