InfiLee 发表于 2012-12-14 10:23:00

请问定时器清中断标志位是在什么时候进行的?

手册上写的是:程序计数器跳转到实际的中断向量以执行中断处理例程,同时硬件将清除相应的中断标志。
那么硬件是什么时候清除呢?
是进入到中断函数时,还是执行完中断函数时?
如果是前者,会不会因为中断函数过于庞大,在下次中断来时还未执行完,导致标志位再次置位?
请指教!谢谢!

define_avr 发表于 2012-12-14 11:47:18

1.同时
2.会

所以,一般情况中断函数尽可能短。如果中断函数长了,不想被其他中断影响,可以进中断就先关掉全局中断,执行完后在开中断。

InfiLee 发表于 2012-12-14 14:12:55

define_avr 发表于 2012-12-14 11:47 static/image/common/back.gif
1.同时
2.会



好的,谢谢啦!

jz701209李 发表于 2012-12-14 19:43:11

学习了..........

czp123123 发表于 2012-12-14 22:49:23

要是这么理解,那中断嵌套怎么解释呢??或者正在执行中断的时候来了一个优先级更高的中断,是先执行高的那个还是把这个执行完了再执行呢???

define_avr 发表于 2012-12-14 23:22:41

czp123123 发表于 2012-12-14 22:49 static/image/common/back.gif
要是这么理解,那中断嵌套怎么解释呢??或者正在执行中断的时候来了一个优先级更高的中断,是先执行高的那 ...

先执行优先级高的。

czp123123 发表于 2012-12-15 14:43:22

define_avr 发表于 2012-12-14 23:22 static/image/common/back.gif
先执行优先级高的。

不是在进入中断服务程序的时候就已经关了全局中断了吗??那后面来的优先级高的中断怎么执行啊?

define_avr 发表于 2012-12-15 20:17:49

如果你进中断就关了全局中断,何来的中断嵌套???你要中断嵌套就不能关中断。
页: [1]
查看完整版本: 请问定时器清中断标志位是在什么时候进行的?