在keil下开发lpc176x(3)

2019-01-27 15:28

三、外部中断

lpc17xx的外部中断有两种,一种是单引脚中断,有四个,为P2.10~P2.13,分别占有四个中断源EINT0~EINT3;一种是端口中断,为GPIO0和GPIO2,与P2.13共用中断源EINT3,对于中断的基本设置,例如中断优先级、触发模式和中断标志位等在lpc17xx.h中声明。外部中断特性的寄存器对应的结构体为LPC_SC_TypeDef中的,EXTINT、EXTMODE和EXTPOLAR它们分别来表示中断的标志、模式和极性。我们使用时首先需要写这三个结构体对应的寄存器。

EXTMODE对应中断模式控制寄存器,它的0~3位分别对应中断源0~3的中断触发模式,此位为0时,为电平触发,为1时,为边沿触发。而EXTPOLAR定义中断触发值,也是使用了0~3位,此位为0时,为低电平有效或下降沿触发,为1时,为高电平有效或上升沿触发。

对于单引脚中断,使用的是P2.10~P2.13的第二功能。例如,我们要使用EINT2,上升沿触发,我们的程序写为:

其中我们利用或运算而不是直接赋值的目的是为了不影响其它位的数值。编译成功后进行软件调试:

这是程序运行之后的结果,一目了然。

对于端口中断,与引脚中断不同,并不是改变引脚的功能,而是相当一个复加的功能,当相应的端口寄存器数值变化时,产生中断。这需要对另一个寄存器进行设置,这个寄存器对应的结构体是LPC_GPIOINT_TypeDef。在这个结构体中一共有如下几个成员: IntStatus 总端口中断标志寄存器(只读)

IO0IntStatR 端口0上升沿中断标志寄存器(只读) IO0IntStatF端口0下降沿中断标志寄存器(只读) IO0IntClr 端口0标志清除寄存器(只写) IO0IntEnR 端口0上升沿中断使能(读写) IO0IntEnF 端口0下降沿中断使能(读写)

IO2IntStatR 端口2上升沿中断标志寄存器(只读) IO2IntStatF端口2下降沿中断标志寄存器(只读) IO2IntClr 端口2标志清除寄存器(只写) IO2IntEnR 端口2上升沿中断使能(读写) IO2IntEnF 端口2下降沿中断使能(读写)

当我们想使用端口0的第4引脚做下降沿中断时: LPC_GPIOINT->IO0IntStatF = (0x00000001<<4);

接下来我们来讲中断的过程。当我们设置的中断条件达到后,应该开启中断,即执行中断矢量地址处的程序。在ARM中,中断对应的中断矢量地址程序的名称在startup_LPC17xx.s中定义:

…… DCD EINT0_IRQHandler ; 34: External Interrupt 0 DCD EINT1_IRQHandler ; 35: External Interrupt 1 DCD EINT2_IRQHandler ; 36: External Interrupt 2 DCD EINT3_IRQHandler ; 37: External Interrupt 3

……

用汇编语言写出了中断矢量地址对应程序的名称。我们在程序文件中建立一个名为EINT0_IRQHandler的函数,此函数对应着外部中断0。

在ARM中中断有256个优先级其定义可以参考Cortex-M3手册,我们在这里介绍一个简单的使用方法。由于中断直接由Cortex的内核确定,因此它的优先级控制程序在

core_cm3.h中。在core_cm3.h中,有一个名为NVIC functions的部分,里面都是关于中断控制的程序,NVIC_SetPriorityGrouping(uint32_t)是用来设置中断优先级的,参数越小,优先级越高。NVIC_EnableIRQ(IRQn_Type IRQn)和

NVIC_DisableIRQ(IRQn_Type IRQn)分别用来开启和关闭中断,IRQn表示中断号,关于中断号,在LPC17xx.h中LPC17xx Specific Interrupt Numbers部分给出。

中断开启时,系统就会等待中断触发,当中断触发时,系统会自动调用相应的中断函数,在执行中断函数时,不要忘记清中断标值位。

四、电源及时钟开关

为了降低功耗,并不是所有的片上设备都保持开启,我们可以控制某些设备开启,关闭某些不用的设备以达到降低功耗的目的(其实对于初学者的意义在于,有时我们往往因为没有开启某设备而不能使之运行)。关于控制开关的结构体为LPC_SC_TypeDef,在

LPC17xx_system.c中的SystemInit中已经进行了一般的设置,能够解决大部分常用设备的运行,但是某些设备是默认关闭的(例如以太网),关于详细的功能,可以参考LPC17xx用户手册。


在keil下开发lpc176x(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2019最新精选七年级英语上册 Unit 4 Wheres my school bag Secti

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: