IDE界面右边的项目目录树中,我们可以看到STVD对工程自动增加了两个文件,一个是main.c文件,一个是stm8_interrupt_vector.c文件。后者提供了STM8所有的中断入口函数的地址表,以及用于各种不同类型外设中断函数名称申明。
在stm8_interrupt_vector.c文件中,我们可以看到除去Reset向量外其它中断向量的入口均是统一使用void NonHandledInterrupt (void)函数。对于正常的使用我们还是需要重新跟改中断函数入库函数名称。
对于中断函数的入口修改:
1、struct interrupt_vector const _vectab[] 指明的中断向量表,每一个类似{0x82, NonHandledInterrupt},偏移量的申明表示的都是一个中断矢量对于的中断函数名称。
2、中断函数的申明 @far @interrupt void NonHandledInterrupt (void)
例:当需要使用I2C中断的时候,可以这样做:
1、申明I2C中断函数名称: (stm8_interrupt_vector.c文件中)
在struct interrupt_vector const _vectab[]中找到I2C中断函数入口,加入I2C中断函数名称
{0x82, I2C_Server_Interrupt }, /* IRQ19 - I2C (I2C interrupt) */
2、在stm8_interrupt_vector.c文件中添加服务函数:
@far @interrupt void I2C_Server_Interrupt (void)
{
~~~~~加入中断服务代码~~~~~~
return;
}
3、最好在文件头上方申明外部可调用:extern void I2C_Server_Interrupt (void)
4、或者仅是申明函数,再定义STM8_IT.c、STM8_IT.h文件,将中断服务程序全部放置其中。
工程建立好以后,可以通过菜单栏“Project”->“Settings”来修改项目配置
|