打印
[AVR单片机]

Atmega128外部中断

[复制链接]
1320|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

粉丝