【电子资讯】中断服务函数
ICCAVR继承开发环境中使用预处理命令#pragma interrupt—handler来定义一个函数为
中断处理函数,定义中断服务程序的形式为:
#pragma interrupt—handler函数名1:中断号l函数名2:中断号2
例如:
#pragma interrupt—handler Juart0—rx—isr:19
上述语句是定义一个USART0接收中断服务程序。
在ICCAVR集成开发环境中定义中断服务时应注意以下几点:
①中断向量号是从l(复位向量)开始的,不同芯片的中断向量号是不同的,具体应用时应查相应芯片的使用手册。
②如果想多个中断人口使用同一个中断服务程序,则用不同的向量号多次声明。#pragma interrupt—handler time_ovf:7 time_ovf:8
③中断服务函数不能进行参数传递,中断函数也没有返回值,如果中断函数中包含任何参数声明,则导致编译出错。
④不能直接调用中断函数,否则会产生编译错误。在某些特殊情况下,要调用中断函数,应该通过设置(或改变)中断条件,引起中断而进人中断服务程序。
ICCAVR集成开发环境也支持用汇编语言编写中断操作函数。在汇编中,必须自行保存和恢复汇编中用到的全部寄存器。
电子街推荐