打印
[其他ST产品]

中断优先级

[复制链接]
1999|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yufe|  楼主 | 2014-10-30 10:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一般中断源之间有优先级之分,抢占优先级高的中断可中断优先级低的中断。但如果先来了一个中断,程序正在执行该中断的函数,这时又来了一个同样中断源的请求,会发生什么情况呢?
沙发
llia| | 2014-10-30 10:53 | 只看该作者
没看懂啥意思

使用特权

评论回复
板凳
yufe|  楼主 | 2014-10-30 10:54 | 只看该作者
举例来说,假设定义了一个定时10ms的定时器,溢出就中断。但中断函数过长,执行完需要12ms。那么如果定时器溢出后自动重装继续定时10ms就会又产生一次中断,这时定时溢出中断会中断自己的中断函数么?

使用特权

评论回复
地板
wangpe| | 2014-10-30 10:54 | 只看该作者
这个可以自己通过一些参数来试验一下就知道结果了吧?

使用特权

评论回复
5
langgq| | 2014-10-30 10:56 | 只看该作者
般设计上应该避免这样的情况。个人没遇到过这样的,不过一般应该在中断函数中有个中断标志位,你如果清除了,就会再次中断,如果不清除,则不会中断

使用特权

评论回复
6
wangzsa| | 2014-10-30 10:57 | 只看该作者
后面那一次中断不会被执行,除非有更高优先级的中断

使用特权

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

使用特权

评论回复
8
zhanglli| | 2014-10-30 10:59 | 只看该作者
12ms的ISR不是太长了,而是太太太太太长了。

使用特权

评论回复
9
zhanglli| | 2014-10-30 10:59 | 只看该作者
假设12ms变成12us(还是有些长),而定时器的溢出周期是10us,说明MC或可以换思路,用硬件去完成这个事情而不是通过软件中断。

使用特权

评论回复
10
lium| | 2014-10-30 11:00 | 只看该作者
中断本身是有优先级的   不同的中断的优先级不同   执行次序也是不同的  

使用特权

评论回复
11
guoyt| | 2014-10-30 11:03 | 只看该作者
你的问题   主要还是看中断的优先级   不同的优先级   中断的响应问题不同

使用特权

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

使用特权

评论回复
13
llia| | 2014-10-30 11:05 | 只看该作者
理论上不会被中断,除非有更高级的中断,

使用特权

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

使用特权

评论回复
15
langgq| | 2014-10-30 11:07 | 只看该作者
不允许中断处理过长的,过长了还叫中断?

使用特权

评论回复
16
wangpe| | 2014-10-30 11:07 | 只看该作者
中断处理时间过长,影响实时性

使用特权

评论回复
17
yufe|  楼主 | 2014-10-30 11:09 | 只看该作者

在这假设的时间只是个假设而已,我突出的问题是,如果中断函数处理的时间大于定时周期的情况,会怎样呢?

使用特权

评论回复
18
yufe|  楼主 | 2014-10-30 11:09 | 只看该作者
换个说法吧,假设中断函数处理的时间一定,而我不断减小定时器的周期,其小到一定程度的时候就会比中断函数处理的时间要短,这时问题就产生了

使用特权

评论回复
19
zhuww| | 2014-10-30 11:11 | 只看该作者
楼主说得是不是同一个中断源啊

使用特权

评论回复
20
yufe|  楼主 | 2014-10-30 11:12 | 只看该作者
是啊,哎,我下来再详细看看吧

使用特权

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

本版积分规则

983

主题

10170

帖子

1

粉丝