AVR 中断向量表 - 下载本文

C中断向量:

#if defined(_ICC_AVR_) // \VR 编译器\条件编译开始

/*======================================================================================

中断向量定义

======================================================================================*/ #define IT_RESET 1

// 外部引脚、上电复位、掉电检测复位、看门狗复位、以及 JTAG AVR 复位中断向量 #define IT_INT0 2 // 外部中断请求0中断向量 #define IT_INT1 3 // 外部中断请求1中断向量

#define IT_TIMER2_COMP 4 // 定时器/计数器2比较匹配中断向量 #define IT_TIMER2_OVF 5 // 定时器/计数器2溢出中断向量 #define IT_TIMER1_CAPT 6 // 定时器/计数器1输入捕获中断向量 #define IT_TIMER1_COMPA 7 // 定时器/计数器1A比较匹配中断向量 #define IT_TIMER1_COMPB 8 // 定时器/计数器1B比较匹配中断向量 #define IT_TIMER1_OVF 9 // 定时器/计数器1溢出中断向量 #define IT_TIMER0_OVF 10 // 定时器/计数器0溢出中断向量 #define IT_SPI_STC 11 // SPI串行传输结束中断向量 #define IT_USART_RXC 12 // USART接收结束中断向量 #define IT_USART_UDRE 13 // USART数据寄存器空中断向量 #define IT_USART_TXC 14 // USART传送结束中断向量 #define IT_ADC 15 // ADC转换结束中断向量 #define IT_EE_RDY 16 // EEPROM就绪中断向量 #define IT_ANA_COMP 17 // 模拟比较器中断向量 #define IT_TWI 18 // 两线串行接口中断向量

#define IT_INT2 19 // 外部中断请求2中断向量

#define IT_TIMER0_COMP 20 // 定时器/计数器0比较匹配中断向量 #define IT_SPM_RDY 21 // 保存程序存储器内容就绪中断向量

#endif // \VR_\条件编译结束

#if defined(_CodeVision_AVR_) // \ision AVR C 编译器\条件编译开始 #define EXT_INT0 2 // 外部中断请求0中断向量 #define EXT_INT1 3 // 外部中断请求1中断向量

#define TIM2_COMP 4 // 定时器/计数器2比较匹配中断向量 #define TIM2_OVF 5 // 定时器/计数器2溢出中断向量 #define TIM1_CAPT 6 // 定时器/计数器1输入捕获中断向量 #define TIM1_COMPA 7 // 定时器/计数器1A比较匹配中断向量 #define TIM1_COMPB 8 // 定时器/计数器1B比较匹配中断向量 #define TIM1_OVF 9 // 定时器/计数器1溢出中断向量 #define TIM0_OVF 10 // 定时器/计数器0溢出中断向量

#define SPI_STC 11 // SPI串行传输结束中断向量 #define USART_RXC 12 // USART接收结束中断向量 #define USART_DRE 13 // USART数据寄存器空中断向量 #define USART_TXC 14 // USART传送结束中断向量 #define ADC_INT 15 // ADC转换结束中断向量 #define EE_RDY 16 // EEPROM就绪中断向量 #define ANA_COMP 17 // 模拟比较器中断向量 #define TWI 18 // 两线串行接口中断向量

#define EXT_INT2 19 // 外部中断请求2中断向量

#define TIM0_COMP 20 // 定时器/计数器0比较匹配中断向量 #define SPM_READY 21 // 保存程序存储器内容就绪中断向量

#endif // \VR_)\条件编译结束

#if defined(_IAR_EW_AVR_) // \VR 编译器\条件编译开始

#define RESET_vect (0x00)

// 外部引脚、上电复位、掉电检测复位、看门狗复位、以及 JTAG AVR 复位中断向量 #define INT0_vect (0x04) // 外部中断请求0中断向量

#define INT1_vect (0x08) // 外部中断请求1中断向量

#define TIMER2_COMP_vect (0x0C) // 定时器/计数器2比较匹配中断向量 #define TIMER2_OVF_vect (0x10) // 定时器/计数器2溢出中断向量

#define TIMER1_CAPT_vect (0x14) // 定时器/计数器1输入捕获中断向量 #define TIMER1_COMPA_vect (0x18) // 定时器/计数器1A比较匹配中断向量 #define TIMER1_COMPB_vect (0x1C) // 定时器/计数器1B比较匹配中断向量 #define TIMER1_OVF_vect (0x20) // 定时器/计数器1溢出中断向量 #define TIMER0_OVF_vect (0x24) // 定时器/计数器0溢出中断向量 #define SPI_STC_vect (0x28) // SPI串行传输结束中断向量 #define USART_RXC_vect (0x2C) // USART接收结束中断向量

#define USART_UDRE_vect (0x30) // USART数据寄存器空中断向量 #define USART_TXC_vect (0x34) // USART传送结束中断向量 #define ADC_vect (0x38) // ADC转换结束中断向量 #define EE_RDY_vect (0x3C) // EEPROM就绪中断向量 #define ANA_COMP_vect (0x40) // 模拟比较器中断向量 #define TWI_vect (0x44) // 两线串行接口中断向量 #define INT2_vect (0x48) // 外部中断请求2向量

#define TIMER0_COMP_vect (0x4C) // 定时器/计数器0比较匹配中断向量 #define SPM_RDY_vect (0x50) // 保存程序存储器内容就绪中断向量

#endif // \VR_)\条件编译结束

汇编语言中断向量:

;************************************************************************* ;* 中断向量位置声明 *

;*************************************************************************

;******** 中断向量地址定义:

.equ INT0addr = 0x002 ;外部中断请求0向量地址 .equ INT1addr = 0x004 ;外部中断请求1向量地址

.equ OC2addr = 0x006 ;定时器/计数器2比较匹配中断向量地址 .equ OVF2addr = 0x008 ;定时器/计数器2溢出中断向量地址 .equ ICP1addr = 0x00a ;定时器/计数器1输入捕获中断向量地址 .equ OC1Aaddr = 0x00c ;定时器/计数器1A比较匹配中断向量地址 .equ OC1Baddr = 0x00e ;定时器/计数器1B比较匹配中断向量地址 .equ OVF1addr = 0x010 ;定时器/计数器1溢出中断向量地址 .equ OVF0addr = 0x012 ;定时器/计数器0溢出中断向量地址 .equ SPIaddr = 0x014 ;SPI串行传输结束中断向量地址 .equ URXCaddr = 0x016 ;USART接收结束中断向量地址

.equ UDREaddr = 0x018 ;USART数据寄存器空中断向量地址 .equ UTXCaddr = 0x01a ;USART传送结束中断向量地址 .equ ADCCaddr = 0x01c ;ADC转换结束中断向量地址 .equ ERDYaddr = 0x01e ;EEPROM就绪中断向量地址 .equ ACIaddr = 0x020 ;模拟比较器中断向量地址 .equ TWIaddr = 0x022 ;两线串行接口中断向量地址 .equ INT2addr = 0x024 ;外部中断请求2向量地址

.equ OC0addr = 0x026 ;定时器/计数器0比较匹配中断向量地址 .equ SPMRaddr = 0x028 ;保存程序存储器内容就绪中断向量地址