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