京都医院http://www.fjzzled.com/杭州京都医院
分类: 嵌入式
2010-11-22 17:08:00
/*
EINT8(GPG0),EINT11(GPG3),EINT13(GPG5),EINT14(GPG6),
EINT15(GPG7),EINT19(GPG11),为按键接口。
*/
static void __irq EINT8_23_ISR(void)
{
ClearPending(BIT_EINT8_23);
if(rEINTPEND&(1<<8))
{
rEINTPEND|=1<<5;
rGPBDAT&=~((1<<5)|(1<<6)|(1<<7)|(1<<8));
rGPBDAT|= ((0<<5)|(1<<6)|(1<<7)|(1<<8));
}
if(rEINTPEND&(1<<11))
{
rEINTPEND|=1<<11;
rGPBDAT&=~((1<<5)|(1<<6)|(1<<7)|(1<<8));
rGPBDAT|= ((1<<5)|(0<<6)|(1<<7)|(1<<8));
}
if(rEINTPEND&(1<<13))
{
rEINTPEND|=1<<13;
rGPBDAT&=~((1<<5)|(1<<6)|(1<<7)|(1<<8));
rGPBDAT|= ((1<<5)|(1<<6)|(0<<7)|(1<<8));
}
if(rEINTPEND&(1<<14))
{
rEINTPEND|=1<<14;
rGPBDAT&=~((1<<5)|(1<<6)|(1<<7)|(1<<8));
rGPBDAT|= ((1<<5)|(1<<6)|(1<<7)|(0<<8));
}
if(rEINTPEND&(1<<15))
{
rEINTPEND|=1<<11;
rGPBDAT&=~((1<<5)|(1<<6)|(1<<7)|(1<<8));
rGPBDAT|= ((1<<5)|(0<<6)|(0<<7)|(1<<8));
}
if(rEINTPEND&(1<<19))
{
rEINTPEND|=1<<11;
rGPBDAT&=~((1<<5)|(1<<6)|(1<<7)|(1<<8));
rGPBDAT|= ((0<<5)|(1<<6)|(1<<7)|(0<<8));
}
}
void Interrupt_Init(void)
{
rGPGUP&=~((1)|(1<<3)|(1<<5)|(1<<6)|(1<<7)|(1<<11));
rGPGCON&=~((3)|(3<<6)|(3<<10)|(3<<12)|(3<<14)|(3<<22));
rGPGCON|= ((2)|(2<<6)|(2<<10)|(2<<12)|(2<<14)|(2<<22));
// 设置GPG0.GPG3,GPG5,GPG6,GPG7,GPG11为中断口。
rSRCPND|=BIT_EINT8_23;
//写入BIT_EINT8_23到rSRCPND来清除EINT8_23中断请求。
rINTPND|=BIT_EINT8_23;
//写入BIT_EINT8_23到rINTPND来清除EINT8_23中断请求。
rINTMOD&=~BIT_EINT8_23;
//EINT8_23设置为IRQ中断模式。
rINTMSK&=~BIT_EINT8_23;
//是其可以服务EINT8_23中断。
rPRIORITY=0x0;
//中断优先级设置。
rEXTINT1 &= ~((15<<0));
rEXTINT1 |= ((2<<0)); //set eint8 falling edge int
rEXTINT1 &= ~(15<<12);
rEXTINT1 |= (2<<12); //set eint11 falling edge int
rEXTINT1 &= ~(15<<20);
rEXTINT1 |= (2<<20); //set eint13 falling edge int
rEXTINT1 &= ~(15<<24);
rEXTINT1 |= (2<<24); //set eint14 falling edge int
rEXTINT1 &= ~(7<<28);
rEXTINT1 |= (2<<28); //set eint15 falling edge int
rEXTINT2&=~(15<<12);
rEXTINT2|= (2<<12);
//EINT8~23设置为有滤波器,下降沿触发。
rEINTMASK&=~((1<<8)|(1<<11)|(1<<13)|(1<<14)|(1<<15)|(1<<19));
rEINTPEND&=~((1<<8)|(1<<11)|(1<<13)|(1<<14)|(1<<15)|(1<<19));
//EINT8~13中断使能。
pISR_EINT8_23=(U32)EINT8_23_ISR;
//注册中断
}
系统分类: ARM | 用户分类: S3C2440 | 来源: 原创 | 【推荐给朋友】 |
该用户于2010/10/23 21:43:02编辑过该文章