mppt/Drivers/TimeSliceOffset/timeSliceOffset.h

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_ */