共1条
1/1 1 跳转至页
求教关于S3C44B0的中断问题

各位ARM高手,我刚刚接触ARM,我用的ARM7的S3C44B0的芯片,现在中断程序不好用,不知道为什么希望各位高手能帮忙看一看:
void Main(void)
{
int TEMP_rEXTINT;
unsigned int k;
//设置G口为外部中断口
*((unsigned char*)0x2000000) = 0xff;
for(k=0;k<60000;k++);
*((unsigned char*)0x2000000) = 0x0f;
for(k=0;k<60000;k++);
rINTMOD=0;
rINTMSK=~(BIT_GLOBAL | BIT_EINT0 | BIT_EINT1);
rPCONG=0x57ff; //PortG[0~4] EINT MODE,PortG[5~7] OUT设置中断接口状态
rINTCON=0x5; // non Vectored interrupt mode , IRQ mode enable
TEMP_rEXTINT=rEXTINT;//保存外部中断控制寄存器的值
rEXTINT=(TEMP_rEXTINT & 0xffffff22) | 0xffffff22; //EINT[0,1] will be falling edge triggered.
pISR_EINT0=(int)Eint0Isr;//设置外部0的中断向量
pISR_EINT1=(int)Eint1Isr;//设置外部1的中断向量
rEXTINPND=0xf; //clear EXTINPND reg.
rI_ISPC= BIT_EINT0 | BIT_EINT1; //clear pending_bit
rINTMSK=~(BIT_GLOBAL | BIT_EINT0 | BIT_EINT1); //External interrupt0,1 check..
// Delay(20);
}
/********************************************************************
// Function name : Eint0Isr
// Description : eint0 isr
// Return type : void
// Argument : void
*********************************************************************/
void Eint0Isr(void)
{
char i;
unsigned int j;
for(i=0;i<5;i++)
{
switch(i)
{
case 0: *((unsigned char*)0x2000000) = 0xff; break;
case 1: *((unsigned char*)0x2000000) = 0x7f; break;
case 2: *((unsigned char*)0x2000000) = 0x3f; break;
case 3: *((unsigned char*)0x2000000) = 0x1f; break;
case 4: *((unsigned char*)0x2000000) = 0x0f; break;
default: break;
}
for(j=0;j<60000;j++);
}
rI_ISPC= BIT_EINT0; //clear pending_bit
}
/********************************************************************
// Function name : Eint1Isr
// Description : eint1 isr
// Return type : void
// Argument : void
*********************************************************************/
void Eint1Isr(void)
{
char i;
unsigned int j;
for(i=0;i<5;i++)
{
switch(i)
{
case 0: *((unsigned char*)0x2000000) = 0xff; break;
case 1: *((unsigned char*)0x2000000) = 0x7f; break;
case 2: *((unsigned char*)0x2000000) = 0x3f; break;
case 3: *((unsigned char*)0x2000000) = 0x1f; break;
case 4: *((unsigned char*)0x2000000) = 0x0f; break;
default: break;
}
for(j=0;j<60000;j++);
}
rI_ISPC= BIT_EINT1; //clear pending_bit
}
我的联系方式:qq25195314,也希望和各位交流交流!!谢谢!
关键词: 求教 关于 S3C44B0 中断 问题 unsig
共1条
1/1 1 跳转至页