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

哥特de忧伤 2008-08-04 12:14:17
比如我用按键来触发一个中断,中断服务程序是个一秒延时,延时完后回到中断点,中断时定时器会停止计时吗?
...全文
285 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ywchh 2008-08-08
  • 打赏
  • 举报
回复
楼主有几点没有说清楚啊,又是定时器又是外部中断.
这样理解正确吗,你的按键触发了一个外部中断,在这个外部中断的处理程序里面有使用了1秒等待,这个1秒等待是通过定时器来完成的.
先不用管什么效率的问题,也不管中断嵌套的问题,就只说下定时器的记数,1秒到后触发中断,这个时候定时器的动作应该是楼主可以自己控制的,好象是MCR寄存器,可以控制当匹配发生的时候,是需要停止记数器,可以发生中断,可以复位记数器.

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

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

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

不知道说清楚没有,表达能力不是很好.
alaiszy 2008-08-06
  • 打赏
  • 举报
回复
中断中都不能处理过于复杂和太过耗时的工作,如果像你这样加在中断服务程序中加入一个延时,对系统的任务调度等都可能造成很大的影响,如果你设置了deadloop,估计你的系统就老是的deadloop了!
ly_liuyang 2008-08-06
  • 打赏
  • 举报
回复
ARM的中断是可重入的
shagua0916 2008-08-04
  • 打赏
  • 举报
回复
不会,不过你这种做法不合理
sherlock_lai 2008-08-04
  • 打赏
  • 举报
回复
中断里做的事要尽量少。最好在中断里设个标志,在主程序中完成你要做的事

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧