各位大虾: 我是个大菜鸟。现在刚接触ARM,买了快easy2104学习板回来。但学到中断的时候按照书上的中断例子在ADS1.2中仿真。但都每成功。不知道是什么问题书上的例子是这样的。 我在建立工程时是用ARM Executable image for lpc21xx 书中设置的为非向量中断,但没有设到地址。书上的程序如下,请问各位大虾 这样的程序为什么会入不到中断呢? #include "config.h" #define ledcon 0x00002000 //led4口为输出 //P0.14为EINT0 /**********************+外部中断******/ void __irq IRQ_Eint1(void) //外部中断0入口地址 { uint32 i; i=VICIRQStatus; i=IOSET;
if((i&ledcon)==0) //指示灯取反 {IOSET=ledcon; } else {IOCLR=ledcon; } while((EXTINT&0x02)!=0); //等待EINT1变高 EXTINT=0x02; //清中断标志位 } /*************主程序****************/ int main() { PINSEL0=0x20000000; //将KEY1(p0.14)设置为EXINT1方式输入 PINSEL1=0x00000000; //其他口为普通IO口 IODIR=ledcon; //P0.13即LED4为输出 //打开EINT1中断(不设置向量控制器,即使用非向量IRQ) VICIntSelect=0x00000000; //设置所有中断为IRQ中断 VICIntEnable=0x00008000; //使能EXINT0 EXTINT=0x07; //清中断标志位 while(1); //等待中断 return(0); } |