向量号 程序地址 中断源 中断定义
1 0x000 RESET 外部引脚电平引发的,上电的,掉电检测的,看门狗,及JTAG AVR复位
2 0x002 INT0 外部中断请求0中断
3 0x004 INT1 外部中断请求1中断
4 0x006 TIMER2 COMP定时器/计数器2比较匹配中断
5 0x008 TIMER2 OVF定时器/计数器2溢出中断
6 0x00A TIMER1 CAPT定时器/计数器1事件捕捉中断
7 0x00C TIMER1 COMPA定时器/计数器1比较匹配A中断
8 0x00E TIMER1 COMPB定时器/计数器1比较匹配B中断
9 0x010 TIMER1 OVF定时器/计数器1溢出中断
10 0x012 TIMER0 OVF定时器/计数器0溢出中断
11 0x014 SPI_STC SPI串行传输结束中断
12 0x016 USART_RXC USART接收结束中断
13 0x018 USART_UDRE USART数据寄存器空
14 0x01A USART_TXC USART发送结束中断
15 0x01C ADC ADC转换结束中断
16 0x01E EE_RDY EEPROM就绪中断
17 0x020 ANA_COMP 模拟比较器中断
18 0x022 TWI 两线串行接口中断
19 0x024 INT2 外部中断请求2中断
20 0x026 TIMER0_COMP 定时器/计数器0比较匹配中断
21 $028 SPM_RDY 保存程序存储器内容就绪
复位和中断向量位置的确定
BOOTRST IVSEL 复位地址 中断向量起始地址
1 0 0x0000 0x0002
1 1 0x0000 Boot区复位地址+0x0002
0 0 Boot Reset Address 0x0002
0 1 Boot Reset Address Boot区复位地址+0x0002
1.MCUCR——MCU控制寄存器
SM2 SE SM1 SM0 ISC11 ISC10 ISC01 ISC00
位3,2——ISC11,ISC10:中断触发方式控制1 位1与位0
外部中断1由引脚INT1激发,如果SREG寄存器的I标志位和相应的中断屏蔽位置位的话。在检测边沿前MCU首先采样INT1引脚上的电平。如果选择了边沿触发方式或电平变化触发方式,那么持续时间大于一个时钟周期的脉冲将触发中断,过短的脉冲则不能保证触发中断。如果选择低电平触发方式,那么低电平必须保持到当前指令执行完成。
ISC11 ISC10 说明
0 0 INT1为低电平时产生中断请求
0 1 INT1引脚上任意的逻辑电平变化都将引发中断
1 0 INT1的下降沿产生异步中断请求
1 1 INT1的上升沿产生异步中断请求
位1,0–ISC01,ISC00:中断0触发方式控制位 1与位0
外部中断0由引脚INT0激发,如果SREG寄存器的I标志位和相应的中断屏蔽位置位的话。在检测边沿前MCU首先采样INT0引脚上的电平。如果选择了边沿触发方式或电平变化触发方式,那么持续时间大于一个时钟周期的脉冲将触发中断,过短的脉冲则不能保证触发中断。如果选择低电平触发方式,那么低电平必须保持到当前指令执行完成。
ISC01 ISC00 说明
0 0 INT0为低电平时产生中断请求
0 1 INT0引脚上任意的逻辑电平变化都将引发中断
1 0 INT0的下降沿产生异步中断请求
1 1 INT0的上升沿产生异步中断请求
2.MCUCSR——MCU控制与状态寄存器
JTD ISC2 – JTRF WDRF BORF EXTRF PORF
位6——ISC2:中断2触发方式控制
异步外中断2由外部引脚INT2激活,如果SREG寄存器的I标志和GICR寄存器相应的中断屏蔽位置位的话。若ISC2写0,INT2的下降沿激活中断。若ISC2写1,INT2的上升沿激活中断。INT2的边沿触发方式是异步的。只要INT2引脚上产生宽度大于Table 36所示数据的脉冲就会引发中断。若选择了低电平中断,低电平必须保持到当前指令完成,
然后才会产生中断。而且只要将引脚拉低,就会引发中断请求。改变ISC2时有可能发生中断。因此建议首先在寄存器GICR里清除相应的中断使能位INT2,然后再改变ISC2。最后,不要忘记在重新使能中断之前通过对GIFR寄存器的相应中断标志位INTF2写'1’其清零。
3.GICR——通用中断控制寄存器
INT1 INT0 INT2 – – – IVSEL IVCE
位7——INT1:使能外部中断请求1
当INT1为'1’,而且状态寄存器SREG的I标志置位,相应的外部引脚中断就使能了。MCU通用控制寄存器–MCUCR的中断敏感电平控制1位1/0(ISC11与ISC10)决定中断是由上升沿、下降沿,还是INT1电平触发的。只要使能,即使INT1引脚被配置为输出,只要引脚电平发生了相应的变化,中断将产生。
位6——INT0:使能外部中断请求0
当INT0为'1’,而且状态寄存器SREG的I标志置位,相应的外部引脚中断就使能了。MCU通用控制寄存器–MCUCR的中断敏感电平控制0位1/0(ISC01与ISC00)决定中断是由上升沿、下降沿,还是INT0电平触发的。只要使能,即使INT0引脚被配置为输出,只要引脚电平发生了相应的变化,中断将产生。
位 5——INT2:使能外部中断请求2
当INT2为'1’,而且状态寄存器SREG的I标志置位,相应的外部引脚中断就使能了。MCU通用控制寄存器–MCUCR的中断敏感电平控制2位1/0(ISC2与ISC2)决定中断是由上升沿、下降沿,还是INT2电平触发的。只要使能,即使INT2引脚被配置为输出,只要引脚电平发生了相应的变化,中断将产生。
4.GIFR——通用中断标志寄存器
INTF1 INTF0 INTF2 – – – – –
位 7——INTF1:外部中断标志1
INT1引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF1。如果SREG的位I以及GICR寄存器相应的中断使能位INT1为”1”,MCU即跳转到相应的中断向量。进入中断服务程序之后该标志自动清零。此外,标志位也可以通过写入”1”来清零。
位6——INTF0:外部中断标志0
INT0引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF0。如果SREG的位I以及GICR寄存器相应的中断使能位INT0为”1”,MCU即跳转到相应的中断向量。进入中断服务程序之后该标志自动清零。此外,标志位也可以通过写入”1”来清零。
位 5——INTF2:外部中断标志2
INT2引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF2。如果SREG的位I以及GICR寄存器相应的中断使能位INT2为”1”,MCU即跳转到相应的中断向量。进入中断服务程序之后该标志自动清零。此外,标志位也可以通过写入”1”来清零。注意,当INT2中断禁用进入某些休眠模式时,该引脚的输入缓冲将禁用。这会导致INTF2标志设置信号的逻辑变化。
上一篇:ATmega 16 单片机的SPI的相关寄存器(九)
下一篇:ATmega 16 单片机的WDT定时器的相关寄存器(七)
推荐阅读最新更新时间:2024-03-16 15:16