本帖最后由 yueyinji1989 于 2012-10-23 11:19 编辑
你们好,在学习外部中断时,遇到这样一个问题。寄存器都配置好了,就是外部中断进不去?请问是什么回事呢?(下载到硬件了,LED就一直亮着,外部中断没反应)
谢谢!
源代码:
————————————————————————————————————
/******************************
说明:使用外部中断0进行LED的取反
*******************************/
#include"config.h"
#define LEDCON (1<<22)
//中断
void IRQ_Eint0(void)
{
uint32 i;
i=IO0SET;
if((i&LEDCON)==0) //控制LED取反
{
IO0SET=LEDCON;
}
else
{
IO0CLR=LEDCON;
}
while((EXTINT&0X01)!=0)//等待外部中断恢复
{
EXTINT=0X01;
}
VICVectAddr=0;
}
//主函数
int main(void)
{
PINSEL0=0x00000000;
PINSEL1=0x00000001; // 选择P0.16为EINT0
IO0DIR=LEDCON;
// IO0SET=LEDCON;
EXTMODE=0x00; //电平触发
//开中断(进不去?)
VICIntSelect=0x00000000;
VICDefVectAddr=(int)IRQ_Eint0; //中断地址
EXTINT=0X01;
VICIntEnable=0x00004000; //1<<14,使能EINT中断
while(1);
// return (0);
} |