高级会员

- 积分
- 674
- 金钱
- 674
- 注册时间
- 2013-8-16
- 在线时间
- 36 小时
|
5金钱
大家好i,我今天使用ATmega8做外部中断0的测试程序,可是怎么也进不了中断。我使用的是Win avr编写编译,使用avrstdio 4.0烧录的。希望那位大哥能够指点一下,很急很急的,谢谢。我的代码如下:
外部中断0 的代码:
#include <avr/io.h>
#include <avr\interrupt.h>
#include <avr\signal.h>
int i=1;
void port_init(void)
{
//B0是led灯
DDRB |=0x01;//B0 设置为输出
PORTB &=0xFE;//关闭led灯
//D2是外部中断IO口
DDRD&=0xFB;//D2设置为输入
PORTD|=0x04;//D2设置为高电平
}
void exti_init(void)
{
MCUCR=MCUCR|0x03;//外部中断0设置为上升沿触发中断
GICR=GICR|0x40;//使能外部中断0
}
void main(void)
{
port_init();//io初始化
exti_init();//外部中断初始化
sei();开启全局中断
while(1)
{
if(i==-1)
{PORTB|=0x01;.//灯亮}
else if(i==1)
{PORTB&=0xFE;//灯灭}
}
}
//中断服务程序
SIGNAL(SIG_INTERRUPT0)
{
i=i*(-1);
}
|
|