...interrupt_handler Timer_interrupt:7是什么意思
发布网友
发布时间:2024-10-13 07:42
我来回答
共5个回答
热心网友
时间:2024-10-13 10:45
#pragma interrupt_handler Timer_interrupt:7
总的是中断申明
固定格式为:
#pragma interrupt_handler 中断子程序的函数名:该中断所对应的中断向量号
具体的请看图
每个中断子程序都对应一个中断的入口地址即中断向量号来表示
热心网友
时间:2024-10-13 10:41
补充:
#pragma interrupt_handler //是中断声明,一般是不能变的。
Timer_interrupt: //指的是中断程序名称,这个可以自己取名。
7 //代表的是(T/C1比较匹配)中断向量号,不能变。
详情可以在芯片资料的“中断”-->中断向量表中查得到。
//----------------------------------------------------------
那是T/C1计数器的中断入口。
下面是我写的中断程序:
//***************************************
//函数名:Timer1_Interrupt()
//描 述:ATmega16 Timer1中断入口
//***************************************p130
#pragma interrupt_handler Timer1_interrupt:7
void Timer1_interrupt(void)
{
TIFR |= 0x10; //清除OCIF1中断标识位
TCNT1 = 0x00; //计算器清1
......
}
热心网友
时间:2024-10-13 10:48
不对,是定时器中断的声明 ,“7”表示中断向量号,及代表中断的入口地址,不同的向量号所表征的中断是不相同的。7表示的是T1中断向量号,不管是在该中断中发生“比较匹配中断”还是“溢出中断”,都是同样的向量号。
但是这只是某种编译器的编写习惯,如ICC,GCC,其他编译器的编写习惯不太一样,但是,中断向量号是一样的,即使你前面写的是T1中断,数字写成10,它照样进到T0中断(T0初始化过)。
热心网友
时间:2024-10-13 10:46
#pragma interrupt_handler Timer_interrupt:7
上面是用VCC编译器编译的形式,表示这是一个中断处理函数,中断入口地址为7
热心网友
时间:2024-10-13 10:41
你好!
很高兴为你解答,这是中断申明 固定格式为
#pragma interrupt_handler 中断子函数的函数名:中断号(这在头文件中已经定义好了的),希望我的回答对你有帮助!