| 
 
| 小弟在用LPC2378的外部中断0的时候,它一直不执行中断子程序,就是进不了中断,希望大家给会诊一下。我的程序是这样写的:<br />#include "config.h"<br /><br />#define BEEP      1 << 25    // P4.25控制蜂鸣器,高电平蜂鸣<br /><br />/*<br />*********************************************************************************************************<br />** 函数名称 :DelayNS()<br />** 函数功能 :长软件延时<br />** 入口参数 :dly    延时参数,值越大,延时越久<br />** 出口参数 :无<br />*********************************************************************************************************<br />*/<br />void DelayNS (uint32 dly)<br />{<br />    uint32 i;<br />    <br />    for ( ; dly>0; dly--)<br />        for (i=0; i<50000; i++);<br />}<br /><br />/*<br />*********************************************************************************************************<br />** 函数名称 :IRQ_Eint0()<br />** 函数功能 :外部中断0 EINT0服务程序<br />** 入口参数 :无。<br />** 出口参数 :无。<br />*********************************************************************************************************<br />*/<br />void __irq IRQ_Eint0 (void)<br />{<br />    EXTINT = 0x01;        // 清除EINT0中断标志<br />    FIO4SET = BEEP;<br />         DelayNS(1);<br />         FIO4CLR = BEEP;<br />        DelayNS(1);<br />    <br />    VICVectAddr = 0;            // 向量中断结束<br />}<br /><br />/*<br />*********************************************************************************************************<br />** 函数名称 :main()<br />** 函数功能 :<br />** 调试说明 :*********************************************************************************************************<br />*/<br />int main (void)<br />{<br />  //------管脚功能设置------<br />  PINSEL0 = 0x00000300;        // 设置管脚(P0.0~P0.3、P0.5~P0.15)连接GPIO,P0.4连接计数设置<br />  PINSEL1 = 0x0000EA80;        // 设置管脚(P0.16~P0.18、P0.24~P0.31)连接GPIO,(P0.19~P0.22)连接SD卡设置,P0.23连接计数设置<br />  PINSEL2 = 0x50150105;        // 设置管脚(P1.0~P1.15)连接到网口设置<br />  PINSEL3 = 0x00000035;        // 设置管脚(P1.16~P1.17)连接到网口设置,其他管脚连接GPIO<br />  PINSEL4 = 0x0A900000;        // 设置管脚(P2.0~P2.9)连接到GPIO,(P2.11~P2.13)连接SD卡设置,P2.10连接中断<br />  PINSEL6 = 0x00000000;        // 设置管脚(P3.0~P3.7)连接到GPIO<br />  PINSEL7 = 0x00008000;        // 设置管脚(P3.24~P3.26)连接到GPIO,P3.23连接到计数器(系统中未用到P3.23)<br />  PINSEL8 = 0x00000000;        // 设置管脚(P4.0~P4.15)连接到GPIO<br />  PINSEL9 = 0x0F000000;        // 设置管脚(P4.24~P4.25、P4.30~P4.31)连接到GPIO(系统中未用到P4.24),(P4.28~P4.29)连接到串口<br />  FIO4DIR = BEEP;            // 设定蜂鸣器控制管脚输出        <br />  //------外部中断0初始化------<br />  VICIntSelect   = 0x00000000;            // 设置所有中断分配为IRQ中断<br />  VICVectPri14   = 0x00;                // 分配外部中断0到向量中断0<br />  VICVectAddr14   = (uint32)IRQ_Eint0;    // 设置中断服务程序地址<br />  VICIntEnable   = 1 << 14;                // 使能EINT0中断<br />  EXTMODE |=0x01;                       //设置中断0为边缘触发<br />  EXTPOLAR = 0x01;                      //设置为上升沿触发<br />  EXTINT   = 0x01;                        // 清除EINT0中断标志<br /><br />    while (1);<br />    return 0;<br />}<br />/*********************************************************************************************************<br />**                            End Of File<br />********************************************************************************************************/<br /><br /><br />不知道是我中断设置有问题还是怎么回事,高手们帮帮小弟!先谢了!<br /> | 
 |