请教一个定时器的写法

2019-12-19 18:09发布

现在的搞法
typedef        struct                        //毫秒延时结构体
{
        uint8_t         En;
        uint32_t        Cnt;                       
}DelayMs_TypeDef;

DelayMs_TypeDef msTimer1;

//初始化定时器
msTimer1.En = 1;
msTimer1.Cnt = 2000;        //2000ms

//计时
if(msTimer1.En==1)
{
        if(--msTimer1.Cnt==0)
        {
                msTimer1.En = 0;
        }
        //这里定时器时间到执行一系列动作
}

这样如果定时器一多,好像就比较繁杂了,初始化和计时又不在同一个地方,求一简单的写法
如:将上诉过程全部封装起来,用一个函数 func1 实现初始化和计时,同时函数参数里面给另外一个函数 func2 的指针 ,func2 函数用来执行定时器时间到之后的动作,并且func2需要传参进去
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。