yb_arm/osp/inc/ospSwTimer.h
2023-07-12 14:14:31 +08:00

67 lines
1.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef __OSP_SW_TIMER__
#define __OSP_SW_TIMER__
#define OSP_SW_TIMER_NAME_LEN (24)
#define OSP_SW_TIMER_NUM (4)
#define OSP_GET_MIN(a, b) (((a) < (b)) ? (a) : (b))
/* 定时器回调函数 */
typedef void (*OSP_CALLBACK)(void* pArg);
/* 定时器类型 */
typedef enum _OspTmrType
{
OSP_TMR_ONESHOT = 0, /* 一次性定时器 */
OSP_TMR_PERIODIC /* 周期性定时器 */
}OspTmrType;
/* 定时器状态 */
typedef enum _OspTmrStatus
{
OSP_TMR_STOPED = 0, /* 停止 */
OSP_TMR_RUNING /* 运行 */
}OspTmrStatus;
typedef enum _OspTmrUsing
{
OSP_TMR_FREE = 0, /* 定时点结点空闲 */
OSP_TMR_BUSY /* 定时点结点忙 */
}OspTmrUsing;
/* 定时器结构体 */
typedef struct _OspSwTimer
{
uint8_t u8Using; /* 定时器是否占用0-未占用1-已占用 */
uint8_t u8Padding[3];
uint8_t u8TmrName[OSP_SW_TIMER_NAME_LEN]; /* 定时器名称 */
uint32_t u32TimeOut; /* 定时器超时时间 */
uint32_t u32RealTime; /* 当前剩余时间 */
OspTmrType emTmrType; /* 定时器类型 */
OSP_CALLBACK pfnTmrCallBack; /* 定时器回调函数 */
void* pArg; /* 定时器回调函数参数 */
OspTmrStatus emTmrStatus; /* 定时器状态 */
}OspSwTimer_t;
/* 定时器初始化函数 */
int8_t OspTmrInit();
/* 创建定时器 */
int8_t OspTmrCreate(const char* pu8Name,
uint32_t u32TimeOut,
OspTmrType emTmrType,
OSP_CALLBACK pfnTmrCallBack,
void* pArg);
/* 删除定时器 */
int8_t OspTmrDelete(uint8_t u8TmrIndex);
/* 启动定时器 */
int8_t OspTmrStart(uint8_t u8TmrIndex);
/* 停止定时器 */
int8_t OspTmrStop(uint8_t u8TmrIndex);
#endif /* __OSP_SW_TIMER__ */