求助:44b0x IRQ中断为何只能执行一次?
请大家看下一下在S3C44B0X万龙开发板上执行的一段中断代码,44b0x IRQ中断为何只能执行一次?在开发板上的表现为:中断可以实现,按下任一按键,对应LED会亮,但是再按其他键,就不能亮其他的灯了!#include"..\INC\Option.h"
#include"..\INC\DEF.h"
#include"..\INC\44B.h"
#include"..\INC\44BLIB.h"
void __irq IRQ_KEY(void)
{
unsigned char which_int;
which_int=rEXTINTPND;//确定中断请求类型
rEXTINTPND=0xff;//清除rEXTINTPND暂存器
rI_ISPC=BIT_EINT4567;
if(which_int==1)
{
Led_Display(1);
}
else if(which_int==2)
{
Led_Display(2);
}
else if(which_int==4)
{
Led_Display(3);
}
else if(which_int==8)
{
Led_Display(0);
}
// rPCONG=0xffff;//配置IO口为中断输入模式
}
void ENIT_Init(void)
{
rINTMOD=0X0;//使用全局IRQ模式
rINTCON=0X1;//允许irq中断并设置成向量中断模式
rINTMSK=~((0x1<<26)|(0x1<<21));//开放ENT4567中断
rPCONG=0xffff;//配置IO口为中断输入模式
rPUPG=0x0;//上拉电阻使能
rEXTINT=rEXTINT|0x22220000;//设置为下降沿模式
rI_ISPC=BIT_EINT4567;//清除挂起位
rEXTINTPND=0xf;//清除EXTINPND暂存器
pISR_EINT4567=(unsigned)IRQ_KEY;
}
void Main(void)
{
Port_Init();
Led_Display(0);
Beep(0);
ENIT_Init();
while(1);
} 回复【楼主位】lovencj
-----------------------------------------------------------------------
请大家帮助我下! 难道这个问题过于简单,大家都不屑回答!?? 帮顶一下,我最近才开始看44b0
页:
[1]