AVR_中断向量表
,中断向量:
#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 // 定时器,计数器,输入捕获中断向量 #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_USART_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(_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 // 定时器,计数器,,比较匹配中断向量 #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 18 // 两线串行接口中断向量
#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 复位中断向量 #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_vect (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_vect (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_)" 条件编译结束
汇编语言中断向量:
;*************************************************************************
;* 中断向量位置声明 *
;*************************************************************************
;******** 中断向量地址定义:
.equ INT0addr = 0x002 ;外部中断请求,向量地址
.equ INT1addr = 0x004 ;外部中断请求,向量地址
.equ OC2addr = 0x006 ;定时器,计数器,比较匹配中断向量地址 .equ OVF2addr = 0x008 ;定时器,计数器,溢出中断向量地址 .equ ICP1addr = 0x00a ;定时器,计数器,输入捕获中断向量地址 .equ OC1Aaddr = 0x00c ;定时器,计数器,,比较匹配中断向量地址 .equ OC1Baddr = 0x00e ;定时器,计数器,,比较匹配中断向量地址 .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 ;保存程序存储器内容就绪中断向量地址