切换到宽版
  • 2106阅读
  • 4回复

回答摩天轮1111坛友的疑问,关于单片机中断 [复制链接]

上一主题 下一主题
离线reckson
 

发帖
422
M币
1757
专家
0
粉丝
7
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2014-08-28
原帖地址见: [C51]郭天祥的51开发板求助,有问题
下面我写个了程序,和摩天轮不一样,但是原理相同。大家请看图(先看图片下部分的文字,再看上面的):

如果把interrupt 后面的中断号改成2,或者3呢?




那么怎么解决这种问题呢:我们可以指定函数或者程序在单片机rom里面的存放地址,类似于我们汇编里面的org伪指令。




改成这样后,我们再来编译一下interrupt 2 的情况:



总结:产生这种现象的原因,是由于keil把c转成汇编的时候,某些代码占据了中断入口地址而造成的。那么为什么interrput 1 没有这种现象呢?我也不知道,我只能说这是keil编译的问题。
写程序的时候,还是要谨慎,开什么中断,就写什么中断服务程序,要一一对应。最好指定程序的起始地址,跳过中断服务程序入口地址区,这样就能避免很多不必要的错误了。



本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖提到的人: @摩天轮1111
本帖最近打赏记录:共1条打赏 ,M币+3
离线baiwenlongba

发帖
2126
M币
6458
专家
9
粉丝
85
只看该作者 1楼 发表于: 2014-08-28
请登录后查看

发帖
62
M币
144
专家
3
粉丝
8
只看该作者 2楼 发表于: 2014-08-28
请登录后查看
本帖提到的人: @reckson
离线reckson

发帖
422
M币
1757
专家
0
粉丝
7
只看该作者 3楼 发表于: 2014-08-28
回 摩天轮1111 的帖子
请登录后查看
离线fang3

发帖
4445
M币
22967
专家
44
粉丝
213
只看该作者 4楼 发表于: 2014-08-28
请登录后查看
快速回复
限80 字节
“新手上路”发帖需审核后才能显示(请认真发帖),达到数码9级后取消此限制
 
上一个 下一个