|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
[这个贴子最后由dguang163在 2003/11/03 09:59am 第 1 次编辑]
各位帮忙看一下在44B0中执行中断程序就跑飞,进不到中断服务程序中,很是纳闷,以下是程序,请各位指教(我是用仿真器BDI1000调试,外部中断采用按键,) ;平时执行时正常按键按下程序就跑飞
void Test_Eint(void)
{
unsigned int save_G,save_PG;
int i;
/***Vectored interrupt test***/
save_G=rPCONG;
save_PG=rPUPG;
rPCONG=0xffff;//EINT7~0
rPUPG=0x0;//pull up enable
pISR_EINT2=(int)Eint2Isr;
rINTMOD=0x0; // All=IRQ mode
rINTCON=0x1
rINTMSK=~((0x1<<26)|(0x1<<23));
Uart_Printf(" ress the EINT buttons!!!\n");
while(!which_int);
switch(which_int)
{
case 1:
Uart_Printf("EINT4 had been occured...\n");
break;
case 2:
Uart_Printf("EINT5 had been occured...\n");
break;
case 4:
Uart_Printf("EINT6 had been occured...\n");
break;
case 8:
Uart_Printf("EINT7 had been occured...\n");
break;
case 9:
Uart_Printf("EINT2 had been occured...\n");
break;
case 0x0a:
Uart_Printf("EINT0 had been occured...\n");
break;
case 0x0b:
Uart_Printf("EINT1 had been occured...\n");
break;
case 0x0c:
Uart_Printf("EINT3 had been occured...\n");
break;
default :
break;
}
rINTMSK=(0x1<<26);
rPCONG=save_G;
rPUPG=save_PG;
which_int=0;
rINTCON=0x5;
}
void __irq Eint2Isr(void)
{
rI_ISPC=(0x1<<23);//clear pending_bit
which_int=9;
}
|
|