原子哥的延时函数如果被中断会出现问题

2019-07-20 22:15发布


        原子哥的延时函数是基于systick设计的,如果在运行中被中断打断,在中断中再调用延时函数,会导致延时出乱,当中断返回时systick的值已经被中断中的延时函数改变了,导致延时错误。
我是通过这样一个例子进行测试的,在main函数里跑一个500ms间隔的流水灯,设计一个传感器DATA_READY的引脚触发中断,在中断中通过模拟IIC读取传感器数据,模拟IIC会调用延时函数,最终导致流水灯基本上是常量了,经过检查应该就是延时出乱惹的祸




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
taizonglai
1楼-- · 2019-07-21 03:50
 精彩回答 2  元偷偷看……
东东bh
2楼-- · 2019-07-21 06:43
zuozhongkai 发表于 2016-5-13 17:33
延时用滴答定时器来实现的,每次调用延时的时候会将滴答定时器的计数值清零,开始计够指定的个数(也就是延 ...

我说的就是这个意思,只是说有没有比较好的方法能够解决这个问题呢

一周热门 更多>