您的位置 首页 主动

Cortex-M3 (NXP LPC1788)之外部中止操作

要使用LPC1788的外部中断,要进行两部分的操作。由于外部中断的管脚采用I/O复用的形式,显然我们首先要对管脚进行配置,使其工作在外…

要运用LPC1788外部中止,要进行两部分的操作。咱们外部中止的管脚选用I/O复用的方法,明显咱们首要要对管脚进行装备,使其作业在外部中止输入的形式。其次,咱们需求装备中止相关的寄存器包含中止使能以及中止的触发方法等。

咱们咱们运用的是外部中止0,查阅数据手册,其GPIO管脚为P2_10,为此咱们设置IOCON_P2_10寄存器的FUNC字段,设置成001即为EINT0形式。 装备完引脚后,还需求继续装备详细的中止功用。咱们需求翻开中止使能,设置ISER相应位;还要装备中止的触发方法如电平触发和边缘触发,相关寄存器为EXTMODE和EXTPOLAR;中止触发今后会将外部中止标志寄存器EXTINT相应方位位,这将会向NVIC提交中止请求,假如管脚中止使能,则会发生中止。中止呼应后有必要将EXTINT中的该位清零,不然不能发生下一次中止。

中止进口向量的地址在发动文件中界说,关于外部中止0,其标号为EINT0_IRQHandler。开发板上的电路图如图1所示

图1:按键SW6操控GPIO_P2_10的EINT0

按键按下时,GPIO_P2_10是低电平,没有按下为高电平。装备EINT0的中止触发方法为低电平触发,在中止函数中平息LED。在主函数中一向点亮。程序的作用为按下SW6,LED灯平息。松开则一向坚持亮。程序如下:

  1. #definerFIO1DIR(*(volatileunsigned*)0x20098020)
  2. #definerFIO1MASK(*(volatileunsigned*)0x20098030)
  3. #definerFIO1PIN(*(volatileunsigned*)0x20098034)
  4. #definerFIO1SET(*(volatileunsigned*)0x20098038)
  5. #definerFIO1CLR(*(volatileunsigned*)0x2009803c)
  6. #definerIOCON_P2_10(*(volatileunsigned*)0x4002C128)
  7. #definerIOIntStatus(*(volatileunsigned*)0x40028080)
  8. #definerIO2IntEnF(*(volatileunsigned*)0x400280B4)
  9. #definerIO2IntClr(*(volatileunsigned*)0x400280AC)
  10. #definerEXTINT(*(volatileunsigned*)0x400FC140)
  11. #definerEXTMODE(*(volatileunsigned*)0x400FC148)
  12. #definerEXTPOLAR(*(volatileunsigned*)0x400FC14C)
  13. #definerISER0(*(volatileunsigned*)0xE000E100)
  14. #definerIRP4(*(volatileunsigned*)0xE000E410)
  15. voidEINT0_IRQHandler()
  16. {
  17. rEXTINT|=(0x1<<0);//中止发生之后有必要铲除该位
  18. rFIO1PIN|=(1<<18);
  19. }
  20. voidGPIO_INIT()
  21. {
  22. rFIO1DIR|=(0x1<<18);//P1.18设置为输出,操控LED
  23. rIOCON_P2_10=(rIOCON_P2_10&(~0x7))|(0x1<<0);//装备FUNC字段为EINT0形式
  24. }
  25. voidEINT_INIT()
  26. {
  27. rEXTMODE&=~(0x1<<0);//装备成低电平触发
  28. rEXTPOLAR&=~(0x1<<0);
  29. rISER0=(0x1<<18);//翻开EINT0中止使能
  30. }
  31. intmain(void)
  32. {
  33. GPIO_INIT();
  34. EINT_INIT();
  35. while(1)
  36. {
  37. rFIO1PIN&=~(1<<18);
  38. }
  39. }
  40. voidSystemInit(void)
  41. {
  42. }

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/265678.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部