打印
[ZLG-ARM]

为啥我的帖子没人回复?3次了。EINT0问题

[复制链接]
1829|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zzzpf|  楼主 | 2007-8-4 11:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟在用LPC2378的外部中断0的时候,它一直不执行中断子程序,就是进不了中断,希望大家给会诊一下。我的程序是这样写的:
#include "config.h"

#define BEEP      1 << 25    // P4.25控制蜂鸣器,高电平蜂鸣

/*
*********************************************************************************************************
** 函数名称 :DelayNS()
** 函数功能 :长软件延时
** 入口参数 :dly    延时参数,值越大,延时越久
** 出口参数 :无
*********************************************************************************************************
*/
void DelayNS (uint32 dly)
{
    uint32 i;
    
    for ( ; dly>0; dly--)
        for (i=0; i<50000; i++);
}

/*
*********************************************************************************************************
** 函数名称 :IRQ_Eint0()
** 函数功能 :外部中断0 EINT0服务程序
** 入口参数 :无。
** 出口参数 :无。
*********************************************************************************************************
*/
void __irq IRQ_Eint0 (void)
{
    EXTINT = 0x01;        // 清除EINT0中断标志
    FIO4SET = BEEP;
         DelayNS(1);
         FIO4CLR = BEEP;
        DelayNS(1);
    
    VICVectAddr = 0;            // 向量中断结束
}

/*
*********************************************************************************************************
** 函数名称 :main()
** 函数功能 :
** 调试说明 :*********************************************************************************************************
*/
int main (void)
{
  //------管脚功能设置------
  PINSEL0 = 0x00000300;        // 设置管脚(P0.0~P0.3、P0.5~P0.15)连接GPIO,P0.4连接计数设置
  PINSEL1 = 0x0000EA80;        // 设置管脚(P0.16~P0.18、P0.24~P0.31)连接GPIO,(P0.19~P0.22)连接SD卡设置,P0.23连接计数设置
  PINSEL2 = 0x50150105;        // 设置管脚(P1.0~P1.15)连接到网口设置
  PINSEL3 = 0x00000035;        // 设置管脚(P1.16~P1.17)连接到网口设置,其他管脚连接GPIO
  PINSEL4 = 0x0A900000;        // 设置管脚(P2.0~P2.9)连接到GPIO,(P2.11~P2.13)连接SD卡设置,P2.10连接中断
  PINSEL6 = 0x00000000;        // 设置管脚(P3.0~P3.7)连接到GPIO
  PINSEL7 = 0x00008000;        // 设置管脚(P3.24~P3.26)连接到GPIO,P3.23连接到计数器(系统中未用到P3.23)
  PINSEL8 = 0x00000000;        // 设置管脚(P4.0~P4.15)连接到GPIO
  PINSEL9 = 0x0F000000;        // 设置管脚(P4.24~P4.25、P4.30~P4.31)连接到GPIO(系统中未用到P4.24),(P4.28~P4.29)连接到串口
  FIO4DIR = BEEP;            // 设定蜂鸣器控制管脚输出        
  //------外部中断0初始化------
  VICIntSelect   = 0x00000000;            // 设置所有中断分配为IRQ中断
  VICVectPri14   = 0x00;                // 分配外部中断0到向量中断0
  VICVectAddr14   = (uint32)IRQ_Eint0;    // 设置中断服务程序地址
  VICIntEnable   = 1 << 14;                // 使能EINT0中断
  EXTMODE |=0x01;                       //设置中断0为边缘触发
  EXTPOLAR = 0x01;                      //设置为上升沿触发
  EXTINT   = 0x01;                        // 清除EINT0中断标志

    while (1);
    return 0;
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/


不知道是我中断设置有问题还是怎么回事,高手们帮帮小弟!先谢了!

相关帖子

沙发
liu_huan| | 2007-8-4 15:33 | 只看该作者

可能是你的启动文件里没开IRQ中断

可能是你的启动文件里没开IRQ中断

使用特权

评论回复
板凳
zzzpf|  楼主 | 2007-8-5 09:02 | 只看该作者

liu_huan兄,谢谢!是没有开IRQ中断的问题

少了IRQEnable()了。谢谢您的帮助!

使用特权

评论回复
地板
zlgARM| | 2007-8-5 14:01 | 只看该作者

zzzpf

您好:
    事实上我已经回复了您的帖子,但不知为何您未注意到?与其一贴多发,还不如一贴多顶。谢谢。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

30

帖子

1

粉丝