刚学菜鸟 用mega8外部中断时 proteus仿真发生如下错误
[localimg=180,102]1[/localimg]
大概是这样 开电源LED2不断闪亮表示程序正在运行 当按键1按下LED1亮 按键2按下LED1暗
程序如下:
#include<iom8v.h>
#include<macros.h>
void port_init(void);
void int_init(void);
void delay_ms(int m);
void main(void)
{
port_init();
int_init();
SEI();
NOP();
while(1)
{
delay_ms(10);
PORTC=PINC|(1<<PC4);
delay_ms(10);
PORTC=PINC&(~(1<<PC4));
}
} //主函数,LED灯D2常闪亮
void port_init(void)
{
DDRC=0XFF;
DDRD=0XF3;
} //端口初始化
void int_init(void)
{
MCUCR=MCUCR|0X0F;
GICR=GICR|0X80;
GICR=GICR|0X40;
} //外部中断初始化
#pragma interrupt_handler int0_isr:2
#pragma interrupt_handler int1_isr:3
void int0_isr(void)
{
PORTC=PINC|(1<<PC5);
} //外部中断0中断服务程序,按键1按下,LED灯D1亮
void int1_isr(void)
{
PORTC=PINC&(~(1<<PC5));
} //外部中断1中断服务程序,按键2按下,LED灯D2亮 |