智能车制作
标题:
中断函数名是怎么定义的?
[打印本页]
作者:
tank3508
时间:
2009-3-8 14:05
标题:
中断函数名是怎么定义的?
中断的函数名称到底是怎么定义的啊,比如 Int_TimerOverFlow,Int是什么意思啊?头文件里定义的是Vtimpaaovf啊。
void interrupt Int_TimerOverFlow(void)这样定义中断都可以编译通过,prm里面没有写中断向量地址的,没写中断号的,怎么回事啊?
望高手指点!!!
作者:
shibf
时间:
2009-6-1 21:49
没人知道吗?
作者:
jackyu613
时间:
2009-6-1 23:45
Int是中断的简写,至于为什么不写中断号就能编译,我也不明白,同问!
作者:
hwqdg
时间:
2009-6-2 15:17
中断函数名可以自己随便取,只要是中断向量号或者是中断地址和它对应上就行。
作者:
zhizhi
时间:
2010-2-26 10:00
Int_TimerOverFlow 这个应该在头文件里面宏定义的,个人认为。
作者:
lanbeilei
时间:
2010-7-30 13:24
嗯 这个貌似不像51那样,它不用中断号,是把那个中断向量的入口地址定义成宏来调用的
作者:
hwqdg
时间:
2010-8-1 09:01
XS中的定时器溢出中断函数如下:
#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt VectorNumber_Vtimovf void MCU_TIM_OverFlowInt(void)
{
TFLG2_TOF = 1; //清溢出中断标志
//Add your code here
}
#pragma CODE_SEG DEFAULT
#pragma CODE_SEG __NEAR_SEG NON_BANKED用于将接下来的代码放入非分页区,在XS中中断函数向量只能是16位,放入非分页区才能被中断向量有效的指向。
interrupt VectorNumber_Vtimovf void MCU_TIM_OverFlowInt(void)第一个interrupt表明这个函数为中断函数,VectorNumber_Vtimovf是在头文件中定义过了的中断向量号
#pragma CODE_SEG DEFAULT用于将接下来的代码放入默认的flash地区(默认一般是分页flash)。
作者:
hwqdg
时间:
2010-8-3 20:21
对了,中断函数名随便定义,没有要求。
作者:
chen4013874
时间:
2011-2-26 20:48
有点清楚了,谢谢
作者:
iSmartCar
时间:
2011-2-26 23:09
void interrupt VectorNum FuncName(void)
{
}
/* 其中VectorNum在头文件中找,FuncName随便取名即可 */
作者:
wjyeasy
时间:
2012-3-28 19:10
学习
作者:
keep-seekin
时间:
2013-9-29 20:39
hwqdg 发表于 2009-6-2 15:17
中断函数名可以自己随便取,只要是中断向量号或者是中断地址和它对应上就行。
确定中断函数名可以随便改?我把一个函数名叫“scan”(interrupt void scan(void))的中断改成“bcan”(interrupt void bcan(void))了,为什么给我来这个?
[attach]50923[/attach]
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2