ATmega32外部中断嵌套
时间:11-10
来源:互联网
点击:
#include
#include
#pragma data:code
const table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0xff};
#pragma interrupt_handler int0:2
void int0()
{
PORTC&=~BIT(0);
PORTA=table[0];
while(1);
}
#pragma interrupt_handler int1:3
void int1()
{
PORTC&=~BIT(0);
PORTA=table[1];
SEI();
while(1);
}
#pragma interrupt_handler int2:19
void int2()
{
PORTC&=~BIT(0);
PORTA=table[2];
SEI();
while(1);
}
void main()
{
DDRA=0xff;
PORTA=0xff;
DDRC|=BIT(0);
DDRB&=~BIT(2);
PORTB|=BIT(2);
DDRD&=(~BIT(3))&(~BIT(2));
PORTD|=BIT(3)|BIT(2);
SEI();
GICR|=BIT(7)|BIT(6)|BIT(5);
MCUCR|=BIT(3)|BIT(1);
MCUCR&=(~BIT(2))&(~BIT(0));
while(1);
}
#include
#pragma data:code
const table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0xff};
#pragma interrupt_handler int0:2
void int0()
{
PORTC&=~BIT(0);
PORTA=table[0];
while(1);
}
#pragma interrupt_handler int1:3
void int1()
{
PORTC&=~BIT(0);
PORTA=table[1];
SEI();
while(1);
}
#pragma interrupt_handler int2:19
void int2()
{
PORTC&=~BIT(0);
PORTA=table[2];
SEI();
while(1);
}
void main()
{
DDRA=0xff;
PORTA=0xff;
DDRC|=BIT(0);
DDRB&=~BIT(2);
PORTB|=BIT(2);
DDRD&=(~BIT(3))&(~BIT(2));
PORTD|=BIT(3)|BIT(2);
SEI();
GICR|=BIT(7)|BIT(6)|BIT(5);
MCUCR|=BIT(3)|BIT(1);
MCUCR&=(~BIT(2))&(~BIT(0));
while(1);
}
ATmega32外部中断嵌 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)