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),然后从系统堆栈中……