打印
[AVR单片机]

Atmega128外部中断问题,求大侠解答

[复制链接]
2696|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xzy03101271|  楼主 | 2012-9-22 16:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<util/delay.h>
#include<avr/interrupt.h>
int main(void)
{
unsigned char temp;
DDRC=0b11111111;//设置PD口为输出
temp=0xfe;
DDRD=DDRD|(~(_BV(PD0)));//设置PD0为输入
PORTD=0xff;//设置PD0内部上拉电阻有效
EICRA=0x02;//设置外部中断0为下降沿有效
EIMSK=0x01;//开外部中断0
sei();//开总中断
PORTC=temp;
while(1)
{
  _delay_ms(500);
  temp=temp<<1;
  if(temp==0x00)
  {
   PORTC=temp;
   _delay_ms(500);
   temp=0xff;
  }
  PORTC=temp;
}
}
SIGNAL(SIG_INTERRUPT0)
{
_delay_ms(10);
unsigned char num;
num=0x7f;
PORTC=num;
while(PINC!=0x00)
{
  _delay_ms(1000);
  num=num>>1;
  PORTC=num;
}
}
proteus仿真时为什么会先进一次中断啊

相关帖子

沙发
kpywe| | 2012-11-7 21:36 | 只看该作者
在开启中断前,清除中断标志位,可否解决
另外需要注意,是不是上电的瞬间产生了下降沿信号

使用特权

评论回复
板凳
dqyubsh| | 2012-11-8 02:37 | 只看该作者
重写中断函数,别把乱七八糟的事儿都放中断里,这种写法没前途。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

97

帖子

1

粉丝