中断函数的结构形式:
void 中断函数名(void) interrupt n.(using m)
其中:n表示第n个中断,m表示第m组工作寄存器,默认为0.
n取0-3,m取0-5
例如:void timeroisr (void) interrupt 1using 1
中断函数与普通函数的区别:
①中断函数与普通函数相比要注意在入口屏蔽一些中断,在出口恢复,防止中断函数在处理重要工作中又被中断重入,导致处理异常。
②中断函数还要注意在入口保存重要的寄存器状态,特别是函数中用到的寄存器,在出口恢复,防止中断函数结束后给正常程序带来异常。
③普通函数相当于子程序,完全可以写到主函数当中去。
④中断函数一般是和硬件相关联,在一定条件下才跳转进入的函数。
⑤中断函数需要预先设定中断条件。
⑥中断服务程序的入口地址是相对固定的,而普通的功能程序入口则是随意设置的,此外,中断服务程序的调用是靠中断申请信号而非普通程序。