1、中断向量: #if defined(_ICC_AVR_) / “ICCAVR 编译器“条件编译开始 /*= 中断向量定义 =*/ #define IT_RESET 1 / 外部引脚、上电复位、掉电检测复位、看门狗复位、以及 JTAG AVR 复位中断向量 #define IT_INT0 2 / 外部中断请求中断向量 #define IT_INT1 3 / 外部中断请求中断向量 #define IT_TIMER2_COMP 4 / 定时器计数器比较匹配中断向量 #define IT_TIMER2_OVF 5 / 定时器计数器溢出中断向量 #define IT_TIMER1_CAPT 6 / 定时
2、器计数器输入捕获中断向量 #define IT_TIMER1_COMPA 7 / 定时器计数器比较匹配中断向量 #define IT_TIMER1_COMPB 8 / 定时器计数器比较匹配中断向量 #define IT_TIMER1_OVF 9 / 定时器计数器溢出中断向量 #define IT_TIMER0_OVF 10 / 定时器计数器溢出中断向量 #define IT_SPI_STC 11 / 串行传输结束中断向量 #define IT_USART_RXC 12 / 接收结束中断向量 #define IT_USART_UDRE 13 / 数据寄存器空中断向量 #define IT_USA
3、RT_TXC 14 / 传送结束中断向量 #define IT_ADC 15 / 转换结束中断向量 #define IT_EE_RDY 16 / 就绪中断向量 #define IT_ANA_COMP 17 / 模拟比较器中断向量 #define IT_TWI 18 / 两线串行接口中断向量 #define IT_INT2 19 / 外部中断请求中断向量 #define IT_TIMER0_COMP 20 / 定时器计数器比较匹配中断向量 #define IT_SPM_RDY 21 / 保存程序存储器内容就绪中断向量 #endif / “_ICC_AVR_“ 条件编译结束 #if defined
4、(_CodeVision_AVR_) / “CodeVision AVR C 编译器“ 条件编译开始 #define EXT_INT0 2 / 外部中断请求中断向量 #define EXT_INT1 3 / 外部中断请求中断向量 #define TIM2_COMP 4 / 定时器计数器比较匹配中断向量 #define TIM2_OVF 5 / 定时器计数器溢出中断向量 #define TIM1_CAPT 6 / 定时器计数器输入捕获中断向量 #define TIM1_COMPA 7 / 定时器计数器比较匹配中断向量 #define TIM1_COMPB 8 / 定时器计数器比较匹配中断向量 #
5、define TIM1_OVF 9 / 定时器计数器溢出中断向量 #define TIM0_OVF 10 / 定时器计数器溢出中断向量 #define SPI_STC 11 / 串行传输结束中断向量 #define USART_RXC 12 / 接收结束中断向量 #define USART_DRE 13 / 数据寄存器空中断向量 #define USART_TXC 14 / 传送结束中断向量 #define ADC_INT 15 / 转换结束中断向量 #define EE_RDY 16 / 就绪中断向量 #define ANA_COMP 17 / 模拟比较器中断向量 #define TWI 1
6、8 / 两线串行接口中断向量 #define EXT_INT2 19 / 外部中断请求中断向量 #define TIM0_COMP 20 / 定时器计数器比较匹配中断向量 #define SPM_READY 21 / 保存程序存储器内容就绪中断向量 #endif / “defined(_CodeVision_AVR_)“ 条件编译结束 #if defined(_IAR_EW_AVR_) / “IAR Embedded Workbench AVR 编译器“条件编译开始 #define RESET_vect (0x00) / 外部引脚、上电复位、掉电检测复位、看门狗复位、以及 JTAG AVR 复
7、位中断向量 #define INT0_vect (0x04) / 外部中断请求中断向量 #define INT1_vect (0x08) / 外部中断请求中断向量 #define TIMER2_COMP_vect (0x0C) / 定时器计数器比较匹配中断向量 #define TIMER2_OVF_vect (0x10) / 定时器计数器溢出中断向量 #define TIMER1_CAPT_vect (0x14) / 定时器计数器输入捕获中断向量 #define TIMER1_COMPA_vect (0x18) / 定时器计数器比较匹配中断向量 #define TIMER1_COMPB_vec
8、t (0x1C) / 定时器计数器比较匹配中断向量 #define TIMER1_OVF_vect (0x20) / 定时器计数器溢出中断向量 #define TIMER0_OVF_vect (0x24) / 定时器计数器溢出中断向量 #define SPI_STC_vect (0x28) / 串行传输结束中断向量 #define USART_RXC_vect (0x2C) / 接收结束中断向量 #define USART_UDRE_vect (0x30) / 数据寄存器空中断向量 #define USART_TXC_vect (0x34) / 传送结束中断向量 #define ADC_vec
9、t (0x38) / 转换结束中断向量 #define EE_RDY_vect (0x3C) / 就绪中断向量 #define ANA_COMP_vect (0x40) / 模拟比较器中断向量 #define TWI_vect (0x44) / 两线串行接口中断向量 #define INT2_vect (0x48) / 外部中断请求向量 #define TIMER0_COMP_vect (0x4C) / 定时器计数器比较匹配中断向量 #define SPM_RDY_vect (0x50) / 保存程序存储器内容就绪中断向量 #endif / “defined(_IAR_EW_AVR_)“ 条件
10、编译结束 汇编语言中断向量: ;* ;* 中断向量位置声明 * ;* ;* 中断向量地址定义 : .equ INT0addr = 0x002 ;外部中断请求向量地址 .equ INT1addr = 0x004 ;外部中断请求向量地址 .equ OC2addr = 0x006 ;定时器计数器比较匹配中断向量地址 .equ OVF2addr = 0x008 ;定时器计数器溢出中断向量地址 .equ ICP1addr = 0x00a ;定时器计数器输入捕获中断向量地址 .equ OC1Aaddr = 0x00c ;定时器计数器比较匹配中断向量地址 .equ OC1Baddr = 0x00e ;定时器
11、计数器比较匹配中断向量地址 .equ OVF1addr = 0x010 ;定时器计数器溢出中断向量地址 .equ OVF0addr = 0x012 ;定时器计数器溢出中断向量地址 .equ SPIaddr = 0x014 ;串行传输结束中断向量地址 .equ URXCaddr = 0x016 ;接收结束中断向量地址 .equ UDREaddr = 0x018 ;数据寄存器空中断向量地址 .equ UTXCaddr = 0x01a ;传送结束中断向量地址 .equ ADCCaddr = 0x01c ;转换结束中断向量地址 .equ ERDYaddr = 0x01e ;就绪中断向量地址 .equ ACIaddr = 0x020 ;模拟比较器中断向量地址 .equ TWIaddr = 0x022 ;两线串行接口中断向量地址 .equ INT2addr = 0x024 ;外部中断请求向量地址 .equ OC0addr = 0x026 ;定时器计数器比较匹配中断向量地址 .equ SPMRaddr = 0x028 ;保存程序存储器内容就绪中断向量地址