资料介绍
AVR单片机中断应用设计要点 AVR 单片机中断应用设计要点
核心提示:AVR 的中断源比较多,尤其是 ATmega128,一共有 35 个外部以及内
部中断源。通常情况下,Flash 程序存储器空间的最低位置(0x0000-0x0045)
定义为复位和中断向量空间。完整的中断向量见第二章表 2-23。在中断向量
表中,处于低地址的中断向量所对应的中断拥有高优先级,所以,系统复位
RESET 拥有最高优先级。
A.中断设计注意点:
1.具备 Bootloader 功能的 AVR,其中断向量区可以在 Flash 程序存储器空
间最低位置和 Bootloader 区的头部来回迁移,这主要用于配合 Bootloader 程序
的应用。如果不使用 Bootloader 功能,一般不要中断向量区进行迁移。
2.Flash 较小的 AVR 芯片,其一个中断向量占据 1 个字的空间,用于放置
一条相对转移 RJMP 指令(范围-2K~+2K 字),跳到中断服务程序。对于不使
用的中断,在中断向量区中应放置 1 条中断返回指令 RETI,增强程序的抗干扰
性。
3.ATmega128 的 Flash 空间为 64K 字节,因此它的一个中断向量占据 2
个字的空间,用于放置一条绝对转移 JMP 指令(指令长度为 2 个字),跳到中
断服务程序。对于不使用的中断,在中断向量区中应连续放置 2 条中断返回指
令 RETI,增强程序的抗干扰性。当使用汇编语言编写系统程序时应注意。
4.当 MCU 响应一个中断时,其硬件系统会自动中断返回地址压入系统堆
栈,并将关闭全局中断响应(硬件将中断标志 I 位清 0),清除该中断的中断标
志位;执行中断返回指令 RETI 时,硬件会先允许全局中断响应(硬件将中断
标志 I 位置 1),然后从系统堆栈中