AVR_中断向量表

  • 格式:doc
  • 大小:93.50 KB
  • 文档页数:5

C中断向量:

#if defined(_ICC_AVR_) // "ICCAVR 编译器"条件编译开始

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

中断向量定义

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

#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 // "_ICC_AVR_" 条件编译结束

#if defined(_CodeVision_AVR_) // "CodeVision 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 // "defined(_CodeVision_AVR_)" 条件编译结束

#if defined(_IAR_EW_AVR_) // "IAR Embedded Workbench AVR 编译器"条件编译开始

#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 // "defined(_IAR_EW_AVR_)" 条件编译结束

汇编语言中断向量:

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

;* 中断向量位置声明 *

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

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

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

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

.equ OC2addr = 0x006 ;定时器/计数器2比较匹配中断向量地址

.equ OVF2addr = 0x008 ;定时器/计数器2溢出中断向量地址

.equ ICP1addr = 0x00a ;定时器/计数器1输入捕获中断向量地址

.equ OC1Aaddr = 0x00c ;定时器/计数器1A比较匹配中断向量地址