
51单片机(c语言)中断嵌套的困惑
51单片机(c语言)中断嵌套的困惑众所周知,8051只允许2级中断嵌套。可是我在一本书上看到说“只要堆栈空间足够,中断嵌套的层数一般没有限制”。这个该怎么理解?我的模糊理...
51单片机(c语言)中断嵌套的困惑
众所周知,8051只允许2级中断嵌套。可是我在一本书上看到说“只要堆栈空间足够,中断嵌套的层数一般没有限制”。这个该怎么理解?
我的模糊理解是:“2级中断嵌套”与“中断嵌套层数”其实不是一回事,也就是说这样说并不冲突。但是如果只允许2级中断嵌套的话,那么假设现在有一个低优先级的中断正在执行,突然来了一个高优先级的中断,那么自然将转入高优先级的中断去执行(中断嵌套),以后无论收到哪一级的中断请求,CPU将不会响应(因为已是最高优先级别的中断),直到该中断执行完毕,然后转入下一个中断(这显然不能算是中断“嵌套”),也就是说8051的中断嵌套层数还是限制在了两层啊,求解~~~ 展开
众所周知,8051只允许2级中断嵌套。可是我在一本书上看到说“只要堆栈空间足够,中断嵌套的层数一般没有限制”。这个该怎么理解?
我的模糊理解是:“2级中断嵌套”与“中断嵌套层数”其实不是一回事,也就是说这样说并不冲突。但是如果只允许2级中断嵌套的话,那么假设现在有一个低优先级的中断正在执行,突然来了一个高优先级的中断,那么自然将转入高优先级的中断去执行(中断嵌套),以后无论收到哪一级的中断请求,CPU将不会响应(因为已是最高优先级别的中断),直到该中断执行完毕,然后转入下一个中断(这显然不能算是中断“嵌套”),也就是说8051的中断嵌套层数还是限制在了两层啊,求解~~~ 展开
5个回答
展开全部
“只要堆栈空间足够,中断嵌套的层数一般没有限制”。
这话应该是对的。
虽然只有两级优先级。但是,同一优先级的不同中断的优先性不同。
具体的是:外部中断0、T0、外部中断1、T1、串行中断。五级依次递减。
(在同一优先级)如果正在执行T1中断,这时来了个T0中断,那么可以被打断,执行T0中断服务程序时又来个外部中断0,也能被打断。这不是有三级了吗?
依次类推,应该最多5层吧!不过很少用到那么多。
这话应该是对的。
虽然只有两级优先级。但是,同一优先级的不同中断的优先性不同。
具体的是:外部中断0、T0、外部中断1、T1、串行中断。五级依次递减。
(在同一优先级)如果正在执行T1中断,这时来了个T0中断,那么可以被打断,执行T0中断服务程序时又来个外部中断0,也能被打断。这不是有三级了吗?
依次类推,应该最多5层吧!不过很少用到那么多。

2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
8051的中断优先级只有两级,因此最多允许两级中断嵌套
而对于ARM等有多个优先级的处理器,可以允许多重嵌套
而对于ARM等有多个优先级的处理器,可以允许多重嵌套
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
中断代码很快就要执行完。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
中断嵌套两层 。
“只要堆栈空间足够,中断嵌套的层数一般没有限制”可能指的是中断函数的层层调用吧。要么就是书的作者胡说八道,水平有限!
“只要堆栈空间足够,中断嵌套的层数一般没有限制”可能指的是中断函数的层层调用吧。要么就是书的作者胡说八道,水平有限!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是2层,不然cpu无法处理,会出错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询