44 lines
1.3 KiB
C
44 lines
1.3 KiB
C
/*
|
|
* 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_ */
|