ARM7定时器一秒定时,外部中断是否会干扰一秒定时?

ljytl1981   2008-8-4 12:14 楼主
比如我用按键来触发一个中断,中断服务程序是个一秒延时,延时完后回到中断点,中断时定时器会停止计时吗?

回复评论 (5)

不会,不过你这种做法不合理
点赞  2008-8-4 12:26
中断里做的事要尽量少。最好在中断里设个标志,在主程序中完成你要做的事
点赞  2008-8-4 16:42
ARM的中断是可重入的
点赞  2008-8-6 22:33
中断中都不能处理过于复杂和太过耗时的工作,如果像你这样加在中断服务程序中加入一个延时,对系统的任务调度等都可能造成很大的影响,如果你设置了deadloop,估计你的系统就老是的deadloop了!
点赞  2008-8-6 23:48
楼主有几点没有说清楚啊,又是定时器又是外部中断.
这样理解正确吗,你的按键触发了一个外部中断,在这个外部中断的处理程序里面有使用了1秒等待,这个1秒等待是通过定时器来完成的.
先不用管什么效率的问题,也不管中断嵌套的问题,就只说下定时器的记数,1秒到后触发中断,这个时候定时器的动作应该是楼主可以自己控制的,好象是MCR寄存器,可以控制当匹配发生的时候,是需要停止记数器,可以发生中断,可以复位记数器.

这样简单的说,如果你没有用程序人为的停止timer0(1)的定时器,它就不会停止,至于是否发生中断,以及匹配后是否停止等等,都要通过设定相关的reg来控制.

还有就是中断嵌套的问题,在arm中默认是不嵌套的,如果要嵌套,需要特殊处理.上网查资料看看这方面的东西,不过你这里的问题应该不涉及到这个问题.
如果不允许中断嵌套,其实在一个中断处理的时候,定时器也不会停止的.

假设楼主在按键中断中使用的是别的方法延迟,不是定时器1秒,比如使用大量的空循环.这种情况下,定时器不会停止,只是如果没有开嵌套中断,定时器1秒到后如果触发了中断(是否触发要看reg的设定),那不会跳到定时器的中断处理程序中去,要等按键中断处理完后才可能处理定时器中断.

不知道说清楚没有,表达能力不是很好.
点赞  2008-8-8 10:14
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复