原创 【新手学习LPC1768】关于IO2IntEnR与EXTPOLAR、EXTMODE等的区别?

2012-8-12 22:50 4218 18 19 分类: MCU/ 嵌入式

随便google了下,发现貌似没什么人关心这个问题,不过没关系,就让以后的初学者看到后不用再迷茫了。 其实两者是有很大不同的,前者只能通过软件不停查询LPC_GPIOINT->IO2IntStatR或LPC_GPIOINT->IO2IntStatF来获得端口边沿情况,而后者则一般由硬件自动进入中断处理函数。前者清除中断标志用LPC_GPIOINT->IO2IntClr,后者则用LPC_SC->EXTINT。

前者编程示例:

void EINTInit( void )

{

       LPC_GPIO2->FIODIR  &=  ~(1 << 11);    /* PORT2.11 defined as input       */

         LPC_GPIO2->FIODIR      &= ~(1 << 11);

         LPC_GPIOINT->IO2IntEnR |=  (1 << 11);      /* enable rising edge irq         */

         LPC_GPIOINT->IO2IntEnF |=  (1 << 11);       /* enable falling edge irq         */}

}

 

int main(void)

{

         While(1)

         {

           if(LPC_GPIOINT->IO2IntStatF!=0x0)

                       LED_On (0xff);                                                //点亮LED

              if(LPC_GPIOINT->IO2IntStatR)

                     LED_Off (0xff);                                               //熄灭LED

           LPC_GPIOINT->IO2IntClr |= (1 << 11);     /* clear pending interrupt         */

 

}

 

}

 

后者编程示例:

void EINTInit( void )

{

       LPC_GPIO2->FIODIR  &=  ~(1 << 10);    /* PORT2.10 defined as input       */

LPC_PINCON->PINSEL4 = 0x00100000;            // set P2.10 as EINT0

LPC_SC->EXTMODE = 0x01;                           /* INT0 edge trigger */

LPC_SC->EXTPOLAR = 0x01;                 /* INT0 is rising edge by default */

 

NVIC_EnableIRQ(EINT0_IRQn);                       //使能EINT0中断

}

void EINT0_IRQHandler()

{

         LPC_SC->EXTINT = 0x01;         //EXIT0中断状态清零,在P2.10

}

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户377235 2014-8-27 17:56

恩,不错 不错

相关推荐阅读
tsyctc2598_917119019 2014-08-08 22:17
几种由运放构成的恒流源的电路接法(转帖)
  图老是挂,传成附件了   这几种电路都可以在负载电阻RL上获得恒流输出 第一种由于RL浮地,一般很少用 第二种RL是虚地,也不大使用 第三种虽然RL浮地,但是RL一...
tsyctc2598_917119019 2014-02-23 12:40
cadence 16.3 16.5 16.6 hotfix 安装方法
**成功,共享方法:不少人遇到**之后安装HOTFIX不能使用、报错的问题,那是因为没有使用正确的安装方法。此方法只适合使用pubkey**的16.3、16.5和16.6用户。为何使用pubkey...
tsyctc2598_917119019 2013-05-07 23:36
2013-5-7更新cadence16.3学习笔记(下)
  44.  SI仿真时,提示can’t open xx/xx/xx/cycle.msm是怎么回事? 答:肯定是.brd文件的路径或文件名本身有空格。   45.  SI仿真时,提示“part wit...
tsyctc2598_917119019 2013-05-07 23:08
【新手学习Cadence16.3】自己的Allegro16.3的学习笔记,算是回报社会吧。
  2013-5-7更新 1.         Allegro中我设置了highlight的颜色为白色,但选中后颜色是白蓝相间的,很不方便查看。是什么地方...
tsyctc2598_917119019 2012-08-14 21:20
评论:@lihailin560's Blog 博客中提到的“给你们介绍一些毛骨悚然的骗人技术”
果然是惊悚系列的...
EE直播间
更多
我要评论
1
18
关闭 站长推荐上一条 /3 下一条