[AVR单片机] 关于mega128外部中断的问题。

[复制链接]
4082|11
 楼主| aifei7320 发表于 2012-12-26 21:03 | 显示全部楼层 |阅读模式
      我在使用mega128写一个ps/2的键盘程序,但是发现点问题,当我把外部中断一的初始化程序写在主函数中后,发现程序不能进入主循环当中的while循环了!不晓得是什么原因。如果把初始化函数屏蔽掉,程序就能够继续往下执行。

这是我写的初始化程序

这个是主程序!能够从现象判断出来确实不能进while,而且系统重新上电,也不能正常工作!不知道有没有人也碰到过,或者我哪错了请指导一下!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
yklstudent 发表于 2012-12-26 22:09 | 显示全部楼层
估计单片机一直在复位
 楼主| aifei7320 发表于 2012-12-26 22:13 | 显示全部楼层
yklstudent 发表于 2012-12-26 22:09
估计单片机一直在复位

不会啊!我在外部中断一里面对键盘进行操作还是有反应的!不过就是不能进入while
huangxz 发表于 2012-12-26 23:26 | 显示全部楼层
先设置触发方式,再使能外部中断试一下。
 楼主| aifei7320 发表于 2012-12-27 09:36 | 显示全部楼层
huangxz 发表于 2012-12-26 23:26
先设置触发方式,再使能外部中断试一下。

试了,没有效果!:'(
huangxz 发表于 2012-12-27 09:42 | 显示全部楼层
呵呵,看样子是中断没退出来,这可能有两种原因,一种是确实有那么多的中断,你根本没时间退回到主循环(用示波器看看中断脚信号有没有问题)。另外一种就是你makefile里面是不是芯片类型选错了,而这个中断是其他中断向量的地址。
 楼主| aifei7320 发表于 2012-12-27 12:01 | 显示全部楼层
huangxz 发表于 2012-12-27 09:42
呵呵,看样子是中断没退出来,这可能有两种原因,一种是确实有那么多的中断,你根本没时间退回到主循环(用 ...

当前用到了两个中断,一个是定时计数器0的溢出中断,再就是外部中断1.也拿示波器看了看那中断引脚!在没有外部信号的时候都是高电平,而且中断触发方式设置的是下降沿触发。我用的是avr studio头文件里面的把所有的型号的都包含进来了!没有具体指定是那个型号的。
huangxz 发表于 2012-12-27 13:37 | 显示全部楼层
看楼主使用的好像是gcc编译器啊,实在不行就仿真一下了,不过芯片类型是一定要设置的,在avrstudio里面可以设置的。
wushaorong88 发表于 2012-12-27 19:28 | 显示全部楼层
同意6#
282045368 发表于 2015-1-7 11:45 | 显示全部楼层
最后问题出在哪的?
是不是进入别的中断了??别的中断有被你使能了?
liushabanliuyun 发表于 2017-6-8 15:01 | 显示全部楼层
我也在弄这个问题
Lbsonggz 发表于 2017-6-8 17:47 | 显示全部楼层
很多AVR 系列的芯片外部中断有个毛病,与寄存器顺序有关系,并且,一设置结束先产生一个蛋疼的中断。如果系统电源不稳定,再加上不先禁止全局中断,就容易死在外部中断里头了,使用很多AVR芯片之后的教训。尤其是数字小的,后面还带A的芯片,更要当心了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

48

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部