一个外部中断请求信号会在哪些地方被挂起记录

【图文】中断概念和外部中断_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
中断概念和外部中断
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢ATmega128 复位与中断处理 AVR应用笔记
ATmega128 复位与中断处理
以下资料参考马潮老师的中文手册,由微雪电子整理并发布,转载请注明出处:www.waveshare.net,否则追究相应责任!
AVR有不同的中断源。每个中断和复位在程序空间都有一个独立的中断向量。所有的中断 事件都有自己的使能位。当使能位置位,且状态寄存器的全局中断使能位I 也置位的情况 下,中断可以发生。根据不同的程序计数器PC 数值,在引导锁定位BLB02 或BLB12 被 编程的情况下,中断可能自动禁止。这个特性提高了软件的安全性。具体请参见 P 267& 存储器编程& 。
程序存储器空间的最低地址缺省定义为复位和中断向量。完全的向量列表请参见 P 55& 中 断& 。列表也决定了不同中断的优先级。向量所在的地址越低,优先级越高。RESET 具 有最高的优先级,下一个则为INT0 & 外部中断请求0。通过置位MCU 控制寄存器 (MCUCR)的IVSEL,中断向量可以移至引导Flash的起始处P 55&中断& 一节有详细说明。 编程熔丝位BOOTRST 可以将复位向量也移至引导Flash 的起始处。具体可参见 P 255& 支持引导装入程序 & 在写的同时可以读(RWW, Read-While-Write) 的自我编程能力& 。
当中断发生时全局中断使能位I 被清零,所有的中断都被禁止。用户软件可以通过置位位 I 来使能中断嵌套。此时所有的中断都可以中断当前中断。执行RETI 指令后I 自动置位。
从根本上说有两种类型的中断。第一种由事件触发并置位中断标志。对于这些中断,程序 计数器跳转到实际的中断向量以执行中断处理例程,同时硬件将清除相应的中断标志。中 断标志也可以通过对其写&1& 来清除。当中断发生后,如果相应的中断使能位为&0&,则中 断标志位置位,并一直保持到中断执行,或者被软件清除。类似的,如果全局中断标志被 清零,则所有以发生的中断都不会被执行,直到I 置位。然后被挂起的各个中断按中断优 先级依次执行。
第二种类型的中断则是只要中断条件满足,就会一直触发。这些中断不需要中断标志。若 中断条件在中断使能之前就消失了,则中断不会被触发。
AVR 退出中断后总是回到主程序并执行一条指令才可以去执行其他被挂起的中断。
进入中断例程时状态寄存器不会自动保存;中断返回时也不会自动恢复。这些工作必须 由软件来完成。
使用CLI 指令来禁止中断时,中断立即禁止。没有中断可以在执行CLI 指令后发生,即使 它是在执行CLI 的同时发生的。下面的例子说明了如何在写EEPROM 时使用这个指令来 防止中断发生。
汇编代码例程
in r16, SREG ; 保存SREG
cli ; 禁止中断
sbi EECR, EEMWE ; 启动 EEPROM 写操作
sbi EECR, EEWE
out SREG, r16 ; 恢复 SREG (I-bit)
C 代码例程
char cSREG;
cSREG = SREG; /* 保存 SREG */
/* 禁止中断 */
EECR |= (1&&EEMWE); /* 启动 EEPROM 写操作 */
EECR |= (1&&EEWE);
SREG = cSREG; /* 恢复 SREG (I-bit) */
使用SEI 指令使能中断时,紧跟其后的第一条指令在执行任何中断之前先执行。
汇编代码例程
sei ; 置位全局中断使能标志
sleep ; 进入睡眠模式,等待中断发生
注意: 在执行任何被挂起的中断之前首先进入睡眠模式
C 代码例程
_SEI(); /* 置位全局中断使能标志 */
_SLEEP(); /* 进入睡眠模式,等待中断发生 */
/* 注意: 在执行任何被挂起的中断之前首先进入睡眠模式 */
中断响应时间
AVR 中断响应时间最少为4 个时钟周期。4 个时钟周期后,程序跳转到实际的中断处理例程。在这4 个时钟期间, PC 自动入栈。在通常情况下,中断向量为一个跳转指令,此跳转要花3 个时钟周期。如果中断在一个多周期指令执行期间发生,则在此多周期指令执行完后MCU 才会执行中断程序。若中断发生时MCU 处于睡眠模式,中断响应时间增加到8 个时钟周期。增加的时钟周期是由于唤醒启动时间引入的。
中断返回需要4 个时钟。在此期间PC( 两个字节) 将被弹出栈,堆栈指针加二,状态寄存 器SREG 的I 置位。
 相关AVR资料说明
可作为如下AVR的参考资料: ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny2313 ATtiny26 ATmega48
ATmega88 ATmega168 ATmega8 ATmega16 ATmega32 ATmega64 ATmega128 ATmega162
ATmega169 ATmega169P ATmega8515 ATmega8535
 相关AVR型号资料
ATtiny2313
ATmega8515
ATmega8535
ATmega128 复位与中断处理豆丁微信公众号
君,已阅读到文档的结尾了呢~~
微型计算机原理作业第六章 习题与思考题
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
微型计算机原理作业第六章 习题与思考题
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口STM32 中断被挂起了那对应的中断标志位怎样?_百度知道
STM32 中断被挂起了那对应的中断标志位怎样?
置0还是1?
我有更好的答案
1、一般来说单片机的中断发生有两个条件,一是中断标志位置位,二是中断允许,如果这两个条件都满足则进入中断,因为正常情况下中断一直是允许的,那么只能通过标志位来区分是否有中断挂起,2、如果进入中断不清除标志位,那么这一中断服务程序结束后由于标志位还是置位的并且中断是允许的,那么还会再次进入该中断,就会发生一直在执行中断程序的情况3、周期性中断是由定时器辅助完成的,只要定时时间到,硬件就会自动置位标志位,这时中断发生,定时器还在运行,与中断处理是并行的没有冲突,因此周期性的中断不是从中断标志位清零开始的。4、如果中断程序没有执行完并且一下个中断又来了,那么硬件还是会自动置位标志位的,如果在这之前已经清零标志位那么中断结束后会再进入一次该中断,如果这时还没有清除中断标志位,则第二个1毫秒中断无效。
采纳率:98%
来自团队:
最佳答案: 多个中断源共用一个中断入口,因此需要区分究竟是怎么中断的。
一个高优先级的打断一个低优先级的,那低优先级的对应的标志位是1还是0?
本回答被提问者采纳
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 中断ajax请求 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信