打印
[AVR单片机]

请教一下外中断的问题

[复制链接]
1388|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Karlshen|  楼主 | 2010-3-2 22:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
向各位高手请教一下atmega128外中断的问题

我以前是搞51的 才开始搞AVR啊
我的外中断程序就是进不去中断是什么原因啊,还望各位高手指点一下,在这先谢谢了
#include<avr/io.h>
#include<icc/macros.h>
#include<avr/interrupt.h>
#define uchar unsigned char
void delay(unsigned int ms)     //延时1ms
{
uchar i; unsigned int j;
for(i=0; i<ms; i++)
for(j=0; j<1141; j++);
}
void shezhi()   //中断设置
{
DDRD=BIT(0);
PORTD=BIT(0);   //先将PD0位置高,等待底电平的触发
    SEI();     //总中断使能
EICRA=0X00;   //设置为底电平触发
EIMSK=BIT(0);   //外中断0使能
}
SIGNAL(SIG_INTERRUPT0)   //外中断0的入口函数
{   
      uchar i=0x02;   
PORTC=i;      
i++;
if(i==0xff) i=0x01;
delay(300);
PORTD=BIT(0);     //再次将PD0复位进入主函数
}
int main()
{   
DDRC=0xff;   //将PC口设置为输出
shezhi();   //先设置中断
while(1)   //等待下一次中断
{
  delay(500);
  PORTD&=~BIT(0);   //软件复位,产生中断,进入中断子函数
}
}

相关帖子

沙发
Karlshen|  楼主 | 2010-3-6 11:01 | 只看该作者
外中断程序就是进不去,什么原因啊

使用特权

评论回复
板凳
suoma| | 2010-3-9 19:31 | 只看该作者
可以进中断,不过你的思路有问题,变量的问题

../test.c:30: warning: 'a' is used uninitialized in this function

使用特权

评论回复
地板
Karlshen|  楼主 | 2010-4-7 22:54 | 只看该作者
谢谢了

使用特权

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

本版积分规则

81

主题

734

帖子

1

粉丝