[AVR单片机] Atmega128外部中断

[复制链接]
 楼主| xzy03101271 发表于 2012-9-24 22:16 | 显示全部楼层 |阅读模式
麻烦帮我看一下这个程序,为什么会先进入一次中断呢?用的proteus仿真的
#include<avr/io.h>
#include<util/delay.h>
#include<avr/interrupt.h>
int main(void)
{
unsigned char temp;
DDRC=0b11111111;//设置PC口为输出
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;
}
}
airwill 发表于 2012-9-25 22:06 | 显示全部楼层
这允许中断前, 没有清除中断
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

97

帖子

1

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

38

主题

97

帖子

1

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