【困惑】对正点原子delay_ms的困惑

2019-07-20 19:47发布

我在主函数while(1)中利用正点原子提供的delay_ms控制led2灯每隔500ms toggle一次,当我不开启定时器3和定时器3中断时,led2正常按照程序执行,但是我开启了定时器3和定时器3中断时,为了方便观测我在定时器3的计数器更新中断中使led1 toggle,结果led2不能按照500ms 翻转一次,反而跟着led1的节奏闪烁,没有深入研究过正点原子的delay_ms,不知为何?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
liuzq71
1楼-- · 2019-07-20 20:44
原来人家早就发现这个问题了,请看这个帖:
http://www.openedv.com/posts/list/28620.htm
taizonglai
2楼-- · 2019-07-21 01:05
delay_ms()没有任何问题,仔细检查你的代码,LED1和LED2配置是否正确。
大海兄
3楼-- · 2019-07-21 05:28
zuozhongkai 发表于 2016-9-25 10:16
delay_ms()没有任何问题,仔细检查你的代码,LED1和LED2配置是否正确。

led1和led2的函数验证多次,都是没有问题的,在你的提醒下,我再次读了led的配置函数,没有发现问题。
xuande
4楼-- · 2019-07-21 09:14
 精彩回答 2  元偷偷看……
正点原子
5楼-- · 2019-07-21 12:43
 精彩回答 2  元偷偷看……
大海兄
6楼-- · 2019-07-21 14:37
正点原子 发表于 2016-9-25 10:54
不要在中断里面调用delay_ms,否则会影响中断之外的delay_ms的运行!!

原子哥,我在定时器3的中断服务函数中,没有使用delay_ms,刚才换了其他定时器试试,结果一样出现这种情况。不知道delay_ms这个会不会被定时器的中断函数干扰?

一周热门 更多>