#include "LPC2214.h" void IRQ_Eint2(void) __irq; void Eint2Intit(); void main (void) { Eint2Intit(); while(1) { ; } } void Eint2Intit() { VICIntEnClr=0x00010000; //关闭外部中断2 PINSEL0 = (PINSEL0 & 0x3fffffff) | 0x80000000; //* 选择INT2引脚 VICIntSelect = 0x00000000; // 设置所有中断分配为IRQ中断 VICVectCntl2=0x30; //外部中断2 VICVectAddr2=(uint32)IRQ_Eint2; //设置中断服务程序地址向量 电机复位信号 EXTINT = 0x04; //清外部中断2的中断标识 // EXTMODE = 0x04; //设置外部中断2为沿中断 // EXTPOLAR= 0x0b; //设置外部中断2为下降沿中断 VICIntEnable=0x00010000;
} void IRQ_Eint2(void) __irq { VICIntEnClr=0x00010000; EXTINT = 0x04; VICIntEnable=0x00010000; } 我用的是LPC2214,Keil For Arm的环境,启动文件Keil 3.0自带的StartUp.s,现在是无论如何都进不了中断IRQ_Eint2(),我在网上看到一些资料说需要修改.s中的CPSR寄存器,但是我用Ulink仿真时看CPSR中的I是为0的,不知道怎么修改了,请大狭指教!! |