找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4374|回复: 0
打印 上一主题 下一主题
收起左侧

Atmega128外部中断问题

[复制链接]
跳转到指定楼层
楼主
ID:44239 发表于 2012-9-23 22:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

#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仿真时会先进一次中断,然后执行主程序
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表