最近学ARM7的硬件,有个关于外部中断的,怎么进去跳不出?

2019-07-16 04:43发布

写了个简单的外部中断程序,怎么跳不出来啊,下面是程序(用的KEIL mdk)
#include<LPC21xx.h>
#define uchar unsigned char
#define uint unsigned int
__irq void eint0(void)
{
        IO0SET=0x01;
        while(EXtiNT&(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;       
        }
}

求解释解释
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
草根白骨精
1楼-- · 2019-07-16 09:04
while(EXTINT&(1<<0));
您查询什么东西,这样子傻等,成立为真就一直在那里傻等
daixiaohuidxh
2楼-- · 2019-07-16 14:26
 精彩回答 2  元偷偷看……
kobeshow
3楼-- · 2019-07-16 20:15
草根白骨精 发表于 2012-9-6 21:56
while(EXTINT&(1

那个while确实是个错误,中断0一置位。就一直在那傻等了,我原来也改成if((EXTINT&(1<<0))==1);试过,但是没现象,今天我终于明白了,是ARM的速度太快了,LED变化根本看不到,我加了个延时就好了,哎,真是犯二了,纠结了我好久。。。谢谢了,哈哈
草根白骨精
4楼-- · 2019-07-16 22:45
您问的就是在中断里面出不来

一周热门 更多>