9、IAR中断向量表与中断服务函数的编写

简介: 9、IAR中断向量表与中断服务函数的编写

1、stm8S的中断向量表


/*----------------------------------------------------
 *      Interrupt vector numbers
 *---------------------------------------------------*/
#define AWU_vector                           0x03
#define CLK_CSS_vector                       0x04
#define CLK_SWITCH_vector                    0x04
#define beCAN_FMP_vector                     0x0A
#define beCAN_FULL_vector                    0x0A
#define beCAN_FOVR_vector                    0x0A
#define beCAN_EWGF_vector                    0x0B
#define beCAN_EPVF_vector                    0x0B
#define beCAN_BOFF_vector                    0x0B
#define beCAN_LEC0_vector                    0x0B
#define beCAN_LEC1_vector                    0x0B
#define beCAN_LEC2_vector                    0x0B
#define beCAN_RQCP0_vector                   0x0B
#define beCAN_RQCP1_vector                   0x0B
#define beCAN_RQCP2_vector                   0x0B
#define beCAN_WKUI_vector                    0x0B
#define SPI_TXE_vector                       0x0C
#define SPI_RXNE_vector                      0x0C
#define SPI_WKUP_vector                      0x0C
#define SPI_MODF_vector                      0x0C
#define SPI_OVR_vector                       0x0C
#define SPI_CRCERR_vector                    0x0C
#define TIM1_OVR_UIF_vector                  0x0D
#define TIM1_CAPCOM_BIF_vector               0x0D
#define TIM1_CAPCOM_TIF_vector               0x0D
#define TIM1_CAPCOM_CC1IF_vector             0x0E
#define TIM1_CAPCOM_CC2IF_vector             0x0E
#define TIM1_CAPCOM_CC3IF_vector             0x0E
#define TIM1_CAPCOM_CC4IF_vector             0x0E
#define TIM1_CAPCOM_COMIF_vector             0x0E
#define TIM2_OVR_UIF_vector                  0x0F
#define TIM2_CAPCOM_TIF_vector               0x10
#define TIM2_CAPCOM_CC1IF_vector             0x10
#define TIM2_CAPCOM_CC2IF_vector             0x10
#define TIM2_CAPCOM_CC3IF_vector             0x10
#define TIM3_OVR_UIF_vector                  0x11
#define TIM3_CAPCOM_TIF_vector               0x12
#define TIM3_CAPCOM_CC1IF_vector             0x12
#define TIM3_CAPCOM_CC2IF_vector             0x12
#define TIM3_CAPCOM_CC3IF_vector             0x12
#define UART1_T_TXE_vector                   0x13
#define UART1_T_TC_vector                    0x13
#define UART1_R_RXNE_vector                  0x14
#define UART1_R_OR_vector                    0x14
#define UART1_R_IDLE_vector                  0x14
#define UART1_R_PE_vector                    0x14
#define UART1_R_LBDF_vector                  0x14
#define I2C_SB_vector                        0x15
#define I2C_ADDR_vector                      0x15
#define I2C_ADD10_vector                     0x15
#define I2C_STOPF_vector                     0x15
#define I2C_BTF_vector                       0x15
#define I2C_WUFH_vector                      0x15
#define I2C_RXNE_vector                      0x15
#define I2C_TXE_vector                       0x15
#define I2C_BERR_vector                      0x15
#define I2C_ARLO_vector                      0x15
#define I2C_AF_vector                        0x15
#define I2C_OVR_vector                       0x15
#define UART3_T_TXE_vector                   0x16
#define UART3_T_TC_vector                    0x16
#define UART3_R_RXNE_vector                  0x17
#define UART3_R_OR_vector                    0x17
#define UART3_R_IDLE_vector                  0x17
#define UART3_R_PE_vector                    0x17
#define UART3_R_LBDF_vector                  0x17
#define UART3_R_LHDF_vector                  0x17
#define ADC2_AWDG_vector                     0x18
#define ADC2_EOC_vector                      0x18
#define TIM4_OVR_UIF_vector                  0x19
#define FLASH_EOP_vector                     0x1A
#define FLASH_WR_PG_DIS_vector               0x1A


2、中断函数编写(IAR)


//**************************中断函数区域**************************
#pragma vector=0x05
__interrupt void EXTI_PORTA_IRQHandler(void)
{ 
}
#pragma vector=0x06
__interrupt void EXTI_PORTB_IRQHandler(void)
{
  PB_CR2_C20=0;//禁止PB0端口外部中断
  while(PB_IDR_IDR0==0);
  delay(100);
  LED=!LED;
  delay(100);
  PB_CR2_C20=1;//使能PB0端口外部中断
}
#pragma vector=0x07
__interrupt void EXTI_PORTC_IRQHandler(void)
{
}
#pragma vector=0x08
__interrupt void EXTI_PORTD_IRQHandler(void)
{
}
#pragma vector=0x09
__interrupt void EXTI_PORTE_IRQHandler(void)
{  
}
目录
相关文章
|
NoSQL 数据安全/隐私保护 Android开发
Jlink使用技巧之读取STM32内部的程序
Jlink使用技巧之读取STM32内部的程序
1968 1
Jlink使用技巧之读取STM32内部的程序
|
6月前
|
传感器 监控 C++
外部中断的使用方法
这篇文章介绍了中断的概念,以一个生动的故事比喻,说明中断是如何打断主程序执行并调用中断函数的。文章提到了Arduino控制器和"吃货"模型,展示了如何编写处理吃和开门的代码,并介绍了设置中断的函数`attachInterrupt`。接着,列举了不同Arduino型号的外部中断引脚,并详细解释了中断函数、中断触发模式。最后,提供了一个官方的外部中断例程和其可能的应用场景,如使用旋转编码器或构建监控装置。
|
6月前
|
数据采集 Windows
LabVIEW调用DLL时出现异常0xc0000005代码
LabVIEW调用DLL时出现异常0xc0000005代码
65 0
|
API
4.10 x64dbg 反汇编功能的封装
LyScript 插件提供的反汇编系列函数虽然能够实现基本的反汇编功能,但在实际使用中,可能会遇到一些更为复杂的需求,此时就需要根据自身需要进行二次开发,以实现更加高级的功能。本章将继续深入探索反汇编功能,并将介绍如何实现反汇编代码的检索、获取上下一条代码等功能。这些功能对于分析和调试代码都非常有用,因此是书中重要的内容之一。在本章的学习过程中,读者不仅可以掌握反汇编的基础知识和技巧,还能够了解如何进行插件的开发和调试,这对于提高读者的技能和能力也非常有帮助。
112 0
4.10 x64dbg 反汇编功能的封装
|
Linux 调度
Linux驱动中断下半部的三种方法
Linux驱动中断下半部的三种方法
|
NoSQL Shell C语言
用GCC开发STM32,正点原子开发板的一个库函数版本例程示例
用GCC开发STM32,正点原子开发板的一个库函数版本例程示例
用GCC开发STM32,正点原子开发板的一个库函数版本例程示例
编写使用中断的按键驱动程序
编写使用中断的按键驱动程序
108 0
|
芯片
最简单的LED驱动程序编写流程--基于IMX6ULL
最简单的LED驱动程序编写流程--基于IMX6ULL
209 0
|
芯片
具体单板的按键驱动程序(查询方式)-以IMX6ull单板为例子
具体单板的按键驱动程序(查询方式)-以IMX6ull单板为例子
97 0
|
程序员 Linux 芯片
按键驱动编写
按键驱动编写
109 0
按键驱动编写