下面程序是我编写的,在
s3c44bo上,利用向量中断,按下按键控制led的闪灭,但不能进中断服务程序,谁帮我看看啊
int main(void)
{
//int i;
sysutilssetpllvalue (24, 6, 1);
ioconfig ();
//熄灭所有的led灯
sysutilslightled (led_all, false);
keyledinit(); //初始化各个中断寄存器
for(;;);
return 0;
}
void keyledinit (void)
{
//设置io 口port g
rpcong |= 0xff00;
//设置中断
rintmod &= ~mask_bit(21);
rintcon &= 0x01; //允许irq矢量模式中断 pisr_eint4567
//设置extint4,5,6,7中断模式,我们这里使用低电平触发
rextint &= 0x0000; //先清除extint4,5,6,7的相应设置bit位
rextintpnd = 0xf; //清除extintpnd寄存器
}
#define mask_bit(bit) (1<<(bit))
按键0,1,2,3分别对应着中断4.5.6.7
void handleeint4567(void)
{
u8 which_int;
which_int = rextintpnd;
rextintpnd = 0xf;
ri_ispc = mask_bit(21);
if(which_int == mask_bit(extint4)) //中断4
sysutilslightled (led1, true); //点亮灯d1
if(which_int == mask_bit(extint5)) //中断5
sysutilslightled (led2, true); //点亮灯d2
if(which_int == mask_bit(extint6)) //中断6
sysutilslightled (led3, true); //点亮灯d3
if(which_int == mask_bit(extint7)) //中断7
sysutilslightled (led_all, true); //点亮所有灯
}