中断服务函数
发表:2023-08-29 12:00:51 阅读:127

电子资讯】中断服务函数

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集成开发环境也支持用汇编语言编写中断操作函数。在汇编中,必须自行保存和恢复汇编中用到的全部寄存器。

 

电子街推荐 

register变量

用extern声明外部变量