写了个简单的外部中断程序,怎么跳不出来啊,下面是程序(用的KEIL mdk)
#include<LPC21xx.h>
#define uchar unsigned char
#define uint unsigned int
__irq void eint0(void)
{
IO0SET=0x01;
while(EX
tiNT&(1<<0));
EXTINT=0X01;
VICVectAddr=0;
}
int main(void)
{
EXTINT=0X01; //清外部中断0标志
EXTMODE=0X01; //选择边沿方式
EXTPOLAR=0X00; //选择下降沿
VICIntSelect=0x00000000; //设置为irQ
VICIntEnable=(1<<14); //时能外部中断0
PINSEL1=0x00000001; //连接至ext0到P0.1
IO0DIR=0x01; //P0.0设为输出
//IO0CLR=0X01; //输出P0.0为低电平
VICVectAddr0=(uint)eint0;
VICVectCntl0=0x2e;
// VICIntEnClr=0xffffffff;
while(1)
{
IO0CLR=0x01;
}
}
求解释解释
那个while确实是个错误,中断0一置位。就一直在那傻等了,我原来也改成if((EXTINT&(1<<0))==1);试过,但是没现象,今天我终于明白了,是ARM的速度太快了,LED变化根本看不到,我加了个延时就好了,哎,真是犯二了,纠结了我好久。。。谢谢了,哈哈
一周热门 更多>