打印

中断嵌套和手动恢复

[复制链接]
1984|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuhuis|  楼主 | 2010-6-16 14:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
怎么用的?
沙发
宋倩2010| | 2010-6-16 14:22 | 只看该作者
中断嵌套啥思路?

使用特权

评论回复
板凳
zhuhuis|  楼主 | 2010-6-16 14:23 | 只看该作者
当响应BTM中断时,TMR0中断发生,是否会发生中断嵌套

使用特权

评论回复
地板
宋倩2010| | 2010-6-16 14:24 | 只看该作者
呵呵,任何中断发生时中断使能标志IE被硬件清零

使用特权

评论回复
5
zhuhuis|  楼主 | 2010-6-16 14:30 | 只看该作者
就是说不会暂停BTM中断程序,去执行TMR0

使用特权

评论回复
6
zhuhuis|  楼主 | 2010-6-16 14:30 | 只看该作者
执行TMR0后,又回来执行BTM中断程序?

使用特权

评论回复
7
宋倩2010| | 2010-6-16 14:32 | 只看该作者
中断使能标志IE被硬件清零后这时有中断产生会将IRQ的相应位置置1,但因IE为零,不会去响应

使用特权

评论回复
8
chenho| | 2010-6-16 14:35 | 只看该作者
楼主颇有创新能力

使用特权

评论回复
9
zhuhuis|  楼主 | 2010-6-16 14:35 | 只看该作者
哦,那该怎么办呢?

使用特权

评论回复
10
宋倩2010| | 2010-6-16 14:36 | 只看该作者
想用嵌套就手动恢复

使用特权

评论回复
11
zhuhuis|  楼主 | 2010-6-16 15:19 | 只看该作者
详细说说

使用特权

评论回复
12
宋倩2010| | 2010-6-16 15:23 | 只看该作者
在中断服务程序中手动恢复中断使能标志IE

使用特权

评论回复
13
chenho| | 2010-6-16 15:24 | 只看该作者
小心堆栈溢出哦

使用特权

评论回复
14
chenho| | 2010-6-16 15:24 | 只看该作者
不过没必要使用嵌套吧,那样比较混乱

使用特权

评论回复
15
zhuhuis|  楼主 | 2010-6-16 15:24 | 只看该作者
那用什么方法,我想着嵌套比较形象

使用特权

评论回复
16
宋倩2010| | 2010-6-16 15:37 | 只看该作者
直接设置中断的高低优先级

使用特权

评论回复
17
chenho| | 2010-6-16 17:15 | 只看该作者
别忘了,在每个嵌套里,标志位都要清零

使用特权

评论回复
18
chenho| | 2010-6-16 17:15 | 只看该作者
我一般也都是用优先级

使用特权

评论回复
19
juginhine| | 2010-6-17 11:12 | 只看该作者
LZ如果用的是8bit 芯片的话,可以通过设置中断优先级来实现中断嵌套。如果是4bit芯片要实现嵌套的话,那么就有几点要注意了。
1:要注意优先级。在进入低优先级中断后,可以重新开启IE标志。而在进入高优先级中断后,则不用重新开启IE,等中断处理完毕再恢复IE。
2:在低优先级中断中的备份和高优先级中断的备份需要用不同的寄存器。
3:要注意堆栈溢出。假如只有4层堆栈的话,需要好好设计子程序调用的深度了。

使用特权

评论回复
20
gongche| | 2010-6-17 21:45 | 只看该作者
8bit 的还是很简单

使用特权

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

本版积分规则

728

主题

8464

帖子

6

粉丝