#ifndef __TRIGGER_H__ #define __TRIGGER_H__ #include "config.h" //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- typedef void (*TriggerFunc)(void); typedef struct { u32 triggerTimer; // 触发定时值 TriggerFunc triggerExFunc; // 触发执行函数(触发立刻执行,没有延迟,但不能占用时间太长) int triggerTask; // 触发标志 TriggerFunc triggerTaskFunc; // 触发任务函数(触发创建任务,可能会有延迟) }TriggerCtrl; #ifndef MAX_TRIGGER_TASK #define MAX_TRIGGER_TASK 10 #endif /* * 20220726 * 定时任务单次执行所消耗的最大时长,超过此时长则不继续执行,留待下次执行 * 单位us * 为了避免单次执行所消耗的时间太多,影响到其他任务的运行 */ #ifndef TRIGGER_MAXTIM #define TRIGGER_MAXTIM (0) #endif //--------------------------------------------------------------------------- void InitTrigger(void); void TriggerIntProc(void); void TriggerTask(void); // 添加触发事件到列表 int AddTriggerToList(int gapms, TriggerFunc exf, TriggerFunc tskf); u32 GetTickTimer(void); // 得到时间计数, 单位100ns u32 Get100NsSoftTimer(void); // 得到时间计数, 单位1us u32 GetUsSoftTimer(void); // 得到时间计数, 单位0.1ms u32 Get100UsSoftTimer(void); // 得到时间计数, 单位1ms,精度:1ms u32 GetMsSoftTimer(void); // 得到时间计数, 单位:1ms 精度:10ms u32 GetMsSoftTimer10(void); //--------------------------------------------------------------------------- #endif