打印

如果中断函数没执行完成时,又来了该中断源的中断请求,会发生什么情况?

[复制链接]
12352|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
alwlnso|  楼主 | 2013-5-10 09:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一般中断源之间有优先级之分,抢占优先级高的中断可中断优先级低的中断。但如果先来了一个中断,程序正在执行该中断的函数,这时又来了一个同样中断源的请求,会发生什么情况呢?
举例来说,假设定义了一个定时10ms的定时器,溢出就中断。但中断函数过长,执行完需要12ms。那么如果定时器溢出后自动重装继续定时10ms就会又产生一次中断,这时定时溢出中断会中断自己的中断函数么?
沙发
alwlnso|  楼主 | 2013-5-10 11:36 | 只看该作者
怎么没人理我呢?求大神指导啊

使用特权

评论回复
板凳
grasswolfs| | 2013-5-10 11:54 | 只看该作者
这个可以自己通过一些参数来试验一下就知道结果了吧?一般设计上应该避免这样的情况。个人没遇到过这样的,不过一般应该在中断函数中有个中断标志位,你如果清除了,就会再次中断,如果不清除,则不会中断

使用特权

评论回复
地板
rider1| | 2013-5-10 14:33 | 只看该作者
后面那一次中断不会被执行,除非有更高优先级的中断

使用特权

评论回复
5
qnmdsb2008| | 2013-5-10 15:20 | 只看该作者
那要看是否支持中断嵌套了 ,支持中断嵌套自然是响应更高优先级的中断,然后再返回执行低优先级的中断。

使用特权

评论回复
6
aozima| | 2013-5-10 16:38 | 只看该作者
1. 12ms的ISR不是太长了,而是太太太太太长了。
2. 假设12ms变成12us(还是有些长),而定时器的溢出周期是10us,说明MC或可以换思路,用硬件去完成这个事情而不是通过软件中断。

使用特权

评论回复
7
cjhk| | 2013-5-10 18:46 | 只看该作者
中断本身是有优先级的   不同的中断的优先级不同   执行次序也是不同的  

使用特权

评论回复
8
cjhk| | 2013-5-10 18:47 | 只看该作者
你的问题   主要还是看中断的优先级   不同的优先级   中断的响应问题不同

使用特权

评论回复
9
nongfuxu| | 2013-5-11 07:03 | 只看该作者
"一个同样中断源的请求,会发生什么情况呢?"
相当于在中断函数中没有清中断标志位.

使用特权

评论回复
10
牛牛牛| | 2013-5-11 09:21 | 只看该作者
理论上不会被中断,除非有更高级的中断,

使用特权

评论回复
11
LxiaoseI| | 2013-5-11 10:07 | 只看该作者
中断的通常写法是
关总中断,清中断标志,处理事务,开中断
但现在有些单片机允许中断嵌套

使用特权

评论回复
12
LxiaoseI| | 2013-5-11 10:08 | 只看该作者
不允许中断处理过长的,过长了还叫中断?

使用特权

评论回复
13
elec921| | 2013-5-11 10:37 | 只看该作者
中断处理时间过长,影响实时性

使用特权

评论回复
14
alwlnso|  楼主 | 2013-6-30 12:50 | 只看该作者
aozima 发表于 2013-5-10 16:38
1. 12ms的ISR不是太长了,而是太太太太太长了。
2. 假设12ms变成12us(还是有些长),而定时器的溢出周期是 ...

在这假设的时间只是个假设而已,我突出的问题是,如果中断函数处理的时间大于定时周期的情况,会怎样呢?换个说法吧,假设中断函数处理的时间一定,而我不断减小定时器的周期,其小到一定程度的时候就会比中断函数处理的时间要短,这时问题就产生了

使用特权

评论回复
15
alwlnso|  楼主 | 2013-6-30 12:52 | 只看该作者
牛牛牛 发表于 2013-5-11 09:21
理论上不会被中断,除非有更高级的中断,

这里说的是同一个的中断源喔

使用特权

评论回复
16
alwlnso|  楼主 | 2013-6-30 12:52 | 只看该作者
牛牛牛 发表于 2013-5-11 09:21
理论上不会被中断,除非有更高级的中断,

这里说的是同一个的中断源喔

使用特权

评论回复
17
alwlnso|  楼主 | 2013-6-30 12:53 | 只看该作者
nongfuxu 发表于 2013-5-11 07:03
"一个同样中断源的请求,会发生什么情况呢?"
相当于在中断函数中没有清中断标志位. ...

如果我在中断处理函数里面首先清除中断标志了呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

13

帖子

0

粉丝