使用关键字interrupt和中断号配合的方法
interrupt l7 void TBM—ISR void){/*Timebase Module Handler * /}
该方法直接在中断子程序前面加interrupt关键字和中断号,中断号与地址的对应关系见表l2—9。
从表l 2—9可以看出,中断号越小,中断子程序入口地址存放位置越高,0号是复位人口,优先级最高,一般分配给启动子函数,每个中断号对应2个字节。这里中断人口处存放的是子程序的地址,而不是程序本身。比如2号中断子程序如下:
interrupt 2 void IQR—ISR(void){/*……*/}
该子程序代码存放的起始位置假设在0xEOA9,则在程序存储器最后,中断号2对应的“中断子程序的入口地址存放位置"0xFFFA、0xFFFB处会存放有两个字节“0xEOA9",每当2号中断被响应时,当中断应有的入口代码执行完后,0xFFFA、0xFFFB处存放的内容“0xEOA9"就会被装入PC,以便执行中断子程序。这样做的好处就是每个中断入口只需要2个字节。
阅读更多请您关注: