lvgl-v7/Origin__V0.3_LVGL7/UART/SimplUART/APP/userTimer.h

49 lines
1.7 KiB
C
Raw Normal View History

2022-11-19 17:03:00 +00:00
//
// Created by KS00596 on 2022/7/13.
//
#ifndef ORIGIN_USERTIMER_H
#define ORIGIN_USERTIMER_H
#include "type.h"
#include "pt.h"
typedef struct
{
/**********************************************************
**********************************************************/
u32 time; //定时时间
u32 tick; //目前时间
void (*hdl)(void *,void *); //函数入口,填函数名即可
void(*priv); //函数参数传递,也可直接定义全局变量,通过全局变量传递
u8 use; //改定时器任务是否被创建
u8 timeOut; //是否只执行一次 1:执行完成后直接删除改定时器
/**********************************************************
proto线程调度
**********************************************************/
u32 ptTickYead; //通过软件定时延迟程序执行
u8 ptWake; // protothead是否已经启动过程序标志
struct pt pt; //protothread句柄
} USER_TIMER_HDL;
/*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
protoThead相关代码
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
#define US_BEGIN() PT_BEGIN(&tisTask->pt)
#define US_DELAY(x) {tisTask->ptTickYead=x;PT_YIELD(&tisTask->pt);}
#define US_END() PT_END(&tisTask->pt)
#define TASK_CREAT_ERR 0xff
#define TASK_NULL TASK_CREAT_ERR
void UserTimerTask();
void UserTimerOutDel(u8 id);
u8 UserTimerOutAdd(void *hdl, void *priv, u16 time);
void UserTimerResetTime(u8 id, u16 time);
u8 UserTimerAdd(void *hdl, void *priv, u16 time);
void UserTimerDel(u8 id);
#endif //ORIGIN_USERTIMER_H