智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 9160|回复: 11
打印 上一主题 下一主题

[单片机] 中断函数名是怎么定义的?

[复制链接]

1

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
341
QQ
威望
239
贡献
58
兑换币
34
注册时间
2009-2-23
在线时间
22 小时
跳转到指定楼层
1#
发表于 2009-3-8 14:05:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
中断的函数名称到底是怎么定义的啊,比如 Int_TimerOverFlow,Int是什么意思啊?头文件里定义的是Vtimpaaovf啊。
void interrupt   Int_TimerOverFlow(void)这样定义中断都可以编译通过,prm里面没有写中断向量地址的,没写中断号的,怎么回事啊?
望高手指点!!!

0

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
威望
211
贡献
22
兑换币
0
注册时间
2009-3-31
在线时间
40 小时
2#
发表于 2009-6-1 21:49:13 | 只看该作者
没人知道吗?
回复

使用道具 举报

0

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
391
威望
269
贡献
76
兑换币
54
注册时间
2008-9-28
在线时间
23 小时
3#
发表于 2009-6-1 23:45:02 | 只看该作者
Int是中断的简写,至于为什么不写中断号就能编译,我也不明白,同问!
回复

使用道具 举报

1

主题

43

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1798
威望
235
贡献
1549
兑换币
4
注册时间
2008-5-29
在线时间
7 小时
4#
发表于 2009-6-2 15:17:23 | 只看该作者
中断函数名可以自己随便取,只要是中断向量号或者是中断地址和它对应上就行。
回复

使用道具 举报

5

主题

112

帖子

0

精华

高级会员

Rank: 4

积分
595
威望
363
贡献
82
兑换币
22
注册时间
2009-9-25
在线时间
75 小时
5#
发表于 2010-2-26 10:00:36 | 只看该作者
Int_TimerOverFlow   这个应该在头文件里面宏定义的,个人认为。
回复

使用道具 举报

1

主题

9

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
QQ
威望
235
贡献
38
兑换币
0
注册时间
2010-4-4
在线时间
0 小时
6#
发表于 2010-7-30 13:24:46 | 只看该作者
嗯 这个貌似不像51那样,它不用中断号,是把那个中断向量的入口地址定义成宏来调用的
回复

使用道具 举报

1

主题

43

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1798
威望
235
贡献
1549
兑换币
4
注册时间
2008-5-29
在线时间
7 小时
7#
发表于 2010-8-1 09:01:29 | 只看该作者
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)。
回复

使用道具 举报

1

主题

43

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1798
威望
235
贡献
1549
兑换币
4
注册时间
2008-5-29
在线时间
7 小时
8#
发表于 2010-8-3 20:21:59 | 只看该作者
对了,中断函数名随便定义,没有要求。
回复

使用道具 举报

4

主题

22

帖子

0

精华

高级会员

Rank: 4

积分
647
威望
386
贡献
119
兑换币
90
注册时间
2010-9-24
在线时间
71 小时
9#
发表于 2011-2-26 20:48:51 | 只看该作者
有点清楚了,谢谢
回复

使用道具 举报

1

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
286
威望
237
贡献
43
兑换币
0
注册时间
2011-1-20
在线时间
3 小时
10#
发表于 2011-2-26 23:09:32 | 只看该作者
void interrupt VectorNum FuncName(void)
{
}
/* 其中VectorNum在头文件中找,FuncName随便取名即可 */
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-21 00:34 , Processed in 0.049709 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表