LPC2103在KEIL4下无法进入快速中断!!!
各位大侠,帮我看看 为什么进入不了快速中断程序的初衷是 用外部中断0,触发一次 蜂鸣器P0.14响几声。可是我用高电平触发外部中断0竟无反应
/**************************************************************************************
* file name : gpio.c
* MCU: lpc2103 , IDE: keil 4 .
* haoshida
* EINT0 实现io口高电平递增
***************************************************************************************/
#include<lpc2103.h>
void delay_ms(int dly)
{
unsigned int i;
for(;dly>0;dly--)
{
for(i=0;i<5000;i++);
}
}
void Init_all(void)
{
PINSEL0 = 0x00000000;
PINSEL1 = (PINSEL1&0XFFFFFFFC)|0X01;//P0.16为外部中断
IODIR = 0X00000080;
EXTMODE = 0X01; //边沿触发
EXTPOLAR = 0X01; //上升沿触发
VICIntSelect = 1<<14; //分配为快速中断
EXTINT=0X01; //清楚INT0中断标志
VICIntEnable = 1<<14; //使能中断请求
//VICVectCntl0 = 0x20|14;
//VICVectAddr0 = (void)FRQ_Eint0;//设置中断服务程序地址
__enable_fiq(); //打开中断 __disable_irq();//关全局中断
//__enable_irq();
}
void __irq FRQ_Eint0(void)
{
IOPIN = 0X00000000;
delay_ms(500);
IOPIN = 0X00000080;
delay_ms(500);
IOPIN = 0X00000000;
delay_ms(500);
IOPIN = 0X00000080;
delay_ms(500);
IOPIN = 0X00000000;
delay_ms(500);
IOPIN = 0X00000080;
while((EXTINT&0X01)==0);
EXTINT = 0X01;
}
int main(void)
{
Init_all();
IOPIN = 0X00000000;
delay_ms(500);
IOPIN = 0X00000080;
while(1)
{
/*IOSET = 0X00000080;
delay_ms(100);
IOCLR = 0X00000080;
delay_ms(100);*/
}
} 使用keil 4 开发 NXP arm的高手们,请指点个 一 二 三。 你要把中断函数加到中断向量表里去啊 回复【2楼】lininglive
-----------------------------------------------------------------------
快速中断都设置哪些寄存器? 你说的是向量中断! 最近也在研究FIQ,共勉~~
页:
[1]