标题: Atmega128外部中断问题 [打印本页]

作者: xzy03101271    时间: 2012-9-23 22:57
标题: Atmega128外部中断问题

#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仿真时会先进一次中断,然后执行主程序





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1