前言
我们有些程序在执行或者和下位几交互的过程中可能会出现下位机
硬性规定需要等待多少秒的情况然而我们的程序又必须得执行下去这样会造成单片机大量资源出现过度浪费的情况解决这种问题的办法有很多。
分享一种思路
1.创建一个ms(毫秒)级延时中断 2.创建计数的变量 3.在需要延时的函数中对变量阈值进行判断 4.验证实例–完整使用记录代码
Cubemax创建一个ms定时器很简单这里不赘述附上参考链接:
uint32_t time = 0;
extern uint32_t time;
|
|
业务逻辑
|
|
这样就能做到每秒触发一次少占用资源了
问题
if(time == 1000)
这里我们是让它到达1000ms时 就触发业务函数 如若单业务逻辑比较多时
此时到达1000ms
时 if
来不及判断 那么 这个函数永远没有执行 那么 这种情况如何处理 ?
如果是换成if(time >= 1000)
又那么超过了多少个ms呢?