注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
黄腾酒的个人空间 https://home.eeworld.com.cn/space-uid-535320.html [收藏] [复制] [分享] [RSS]
日志

LPC1768 学习(二)外部中断与GPIO中断

已有 9420 次阅读2014-7-5 19:50 |个人分类:LPC1768| lpc1768

外部中断与GPIO中断
         学习LPC1768已经有一段时间了,遇到的第一个问题便是外部中断和GPIO中断。
      本来一直认为,外部中断就是GPIO中断,现在才知道,原来GPIO中断只是外部中断的一部分。GPIO中断指的是通用IO口引起的中断。LPC1768的P0和P2口就是GPIO中断,GPIO中断有自己的中断通道,只是在LPC1768中和外部中断3共用一个通道而已。所以,他们不用配置为外部中断,只要配置成GPIO口,并且方向为输入,在配置一下中断模式和中断极性,当然,也需要使能外部中断3。
      而外部中断INT0~3是和引脚2.10~2.13一一对应,2.10~2.13的引脚第二功能就是外部中断,使用外部中断需要配置外部中断的中断模式和中断极性。
      这样的话,P2.10~P2.13既可以使用外部中断,也可以使用GPIO中断,只是配置的方法不一样而已。

下面是两段程序,目的都一样,用中断来得到P2.10引脚上的按键触发。
第一个是GPIO中断:

void BUTTON_init(void)
{
  FIO2DIR1  &= ~(1 << 2);    /* 将P2.10配置为输入 */
  IO2IntEnF |=  (1 << 10);     /*  将P2.10的GPIO中断配置为下降沿中断 */
  NVIC_EnableIRQ(EINT3_IRQn);    /* 使能外部中断3*/
}
第二个是外部中断:
void  BUTTON_init ( void )
{
  PINSEL_P2L = 0x00100000;   /* 将P2.10脚设置为EINT0即第二功能 */
  IO2IntEnF = 0x200;             /* 设置为下降沿触发 */
  EXTMODE = 1;         / * 外部中断模式选择为边沿触发 */
  EXTPOLAR = 0;             /* 外部中断极性设置,此处选默认的低电平或下降沿 */
  NVIC_EnableIRQ(EINT0_IRQn);      /* 使能外部中断0 */
}

中断程序一个是外部中断0,一个是外部中断3。
但是都要注意的是,进入中断程序后要清除中断标志位。
评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章