我看到一个程序,是个用按键控制灯亮的程序,按键是连在extint4567引脚上的 在main函数里,调用了keyledtest()函数
void KeyLedTest (void) { U32 dwVal;
//设置IO 口PORT G rPCONG |= 0xff00;
//设置中断 rINTMOD &= ~MASK_BIT(21); rINTCON &= ~MASK_BIT(1);
//设置EXTINT4,5,6,7中断模式,我们这里使用低电平触发 rEXTINT &= 0xffff; //先清除EXTINT4,5,6,7的相应设置bit位
for (;;) { dwVal = rINTPND; if ((dwVal & MASK_BIT(21)) == 0) { continue; }
//EXTINTPND 寄存器,判断是哪个外部中断触发 dwVal = rEXTINTPND;
if ((dwVal & MASK_BIT(EXTINT4)) != 0) { rEXTINTPND |= MASK_BIT(EXTINT4); //外部中断4 产生了,点亮LED1 sysUtilsLightLed (LED1, TRUE); }
if ((dwVal & MASK_BIT(EXTINT5)) != 0) { rEXTINTPND |= MASK_BIT(EXTINT5); //外部中断4 产生了,点亮LED2 sysUtilsLightLed (LED2, TRUE); }
if ((dwVal & MASK_BIT(EXTINT6)) != 0) { rEXTINTPND |= MASK_BIT(EXTINT6); //外部中断4 产生了,点亮LED3 sysUtilsLightLed (LED3, TRUE); }
if ((dwVal & MASK_BIT(EXTINT7)) != 0) { rEXTINTPND |= MASK_BIT(EXTINT7); //外部中断4 产生了,点亮LED1,2,3 sysUtilsLightLed (LED_ALL, FALSE); } //最后清除中断位 //rI_ISPC |= MASK_BIT(21); rI_ISPC = dwVal; } }
可是,我怎么就知道这个keyledtest就是中断函数,而不是普通函数?
在51里,可以用interrupt来标明这个函数是中断函数,可是在这里,没看到任何标识啊,这是怎么回事? |