嵌入式协议栈开发问题【软定时器实现】

嵌入式开发中,硬件定时器资源通常非常有限,而协议栈中需要的定时功能会比较多,下面简单介绍下自己的想法:


背景:利用MCU的一个定时器,模拟出多个软件定时器。

1> 全局结构体用于存储软件定时的参数,如当前时间,定时时间,触发时间,函数指针等;

2> 软定时器设置入口函数,传入要定时的时间与回调函数;

3> 软定时器设置入口函数中,对各个配置的触发时间进行优先级排序,最先触发的优先级最高;

4> 软定时器设置入口函数中,根据优先级最高的触发时间戳,配置下一次硬件定时器将要触发的时刻;

5> 硬件定时器触发完成后,寻找下一个优先级最高的将要触发的结构体;

6> 定时器触发后,调用对应的回调函数即可;

7> 取消某个软定时器时,修改全局的定时器结构体参数,并使对应的软定时器失效。


大家尽情拍砖,不足之处不吝指点,共同进步。

你可能感兴趣的:(嵌入式开发,协议栈)