打印
[LPC]

NXP LPC1768宝马开发板 第三章EXTI

[复制链接]
1919|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
第三章    宝马1768——EXTI
开发环境:集成开发环境μVision4 IDE版本4.60.0.0
主机系统:Microsoft Windows XP
开发平台:旺宝NXP LPC1768开发板

3.1 EXTI
3.2 硬件描述
3.3 程序说明
3.4 实验现象


1LPC1768_EXTI
这章主要介绍LPC1768的外部中断,通过本章的学习,可以了解到LPC1768的中断机制,以及外部中断使用。本章所使用的例程是通过按键触发外部中断,然后控制LED的亮灭。
LPC1768支持35个可嵌套向量中断,可对系统异常和外设中断进行控制,具有32个可编程的中断优先级,硬件优先级屏蔽和软件中断功能。外设中断如下表所示。
LPC1768EINT0EINT1EINT2EINT3,四个外部中断,这四个外部中断引脚分布中可以查到分别对应于P2.10P2.11P2.12P2.13,如下图所示。就是说这四个引脚可以作为外部中断的输入引脚,但是从LPC1768的官方数据手册中明确说明P0P2都可以作为外部中断的输入引脚,注意中断向量表EINT3的说明中有一个注,上面注明的是EINT3通道和GPIO的中断共用。只有当P2.10P2.11P2.12P2.13这四个引脚被配置为外部中断引脚时,他们才会对应的连接到自己外部中断通道,当他们被配置为普通GPIO时,但是又被配置为中断引脚,那么他们用的就是外部中断3的中断通道。所以在编程的时候一定要注意这点。
2、硬件描述:
该例程涉及的主要是LED灯的端口引脚,以及按键的输入引脚。进行此实验时要插上JP8
按键的原理图:
                   LED灯的原理图
3、程序说明:
程序的运行是从启动文件开始的,即复位中断开始运行,如下图所示。上电复位之后,程序从此处开始运行,然后先运行的是SystemInit(),进行时钟的配置;然后通过__main函数跳转到主函数main中。
接下来看主函数,首先是对一些变量的初始化,idxCur变量:点亮的LED编号;idxOld变量:上一个点亮的LED灯编号;dir变量:流水灯的方向。然后对LED灯以及按键的端口引脚的初始化,以及初始化LED
下面看端口引脚的初始化,其中涉及到FIODIR寄存器和FIOSETH寄存器,其中对P0.18P0.19P0.20的设置主要是为了屏蔽U9对于LED端口的影响。
如上图所示,是FIODIR寄存器的描述,为1时是输出,为0是输入,复位值为0。同时该寄存器还可以以字,半字以及字节的方式访问。如下图所示。
如下图所示,是FIOSET寄存器的描述,设置控制的引脚输出电平,当设置为0,则控制引脚电平不改变,置1的时候是,设置为高电平。
这里要注意的是,如果清零该端口引脚,不是对该寄存器进行复位,而是对另外一个寄存器FIOCLR进行置1操作,则是对端口引脚的清零。如下图所示,FIOCLR寄存器复位,则是不改变原来端口电平,置1则是对端口引脚清零操作。其中FIOSETFIOCLR寄存器都是可以进行字、半字和字节的访问。
下面看按键的初始化,这里按键是作为GPIO中断的功能进行实现响应的,上面有提到GPIO的中断是和EINT3中断使用的是一个中断通道。
如上图所示,是IOxIntEnF寄存器的描述,0禁能,1是使能GPIO的下降沿中断,而上升沿的中断是另外一个寄存器IOxIntEnR描述的,如下图所示。
然后使能EINT3的中断通道,这个函数的原型是在core_cm3.c文件中的。
最后是对LED灯的一个初始化设置,即点亮第一个LED灯。
本例程涉及到中断,自然少不了中断服务程序,中断服务函数名,已经在启动文件startup_LPC17xx.s中命名好了,只需要按照已经命名好的函数名,然后往里面填写对应的中断处理程序就可以了。
该程序使用的是外部中断3通道,中断函数如下图所示:
在中断处理函数中,首先是对中断标志位进行清除,然后对LED灯的状态变量进行改变,然后改变LED的状态。中断清除寄存器IOxIntClr的描述如下图所示。写1是清除中断标志位,写0则相应的位不改变。
4、实验现象:
通过按键INT0,实现8LED灯的轮流点亮。注意的是跳线帽JP8LED要插上。



相关帖子

沙发
szopenmcu|  楼主 | 2015-1-20 16:51 | 只看该作者
沙发

使用特权

评论回复
板凳
sanxinwei| | 2015-1-20 16:58 | 只看该作者
  

使用特权

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

本版积分规则

个人签名:专业生产销售STM32开发板,仿真器,http://openmcu.taobao.com/

71

主题

283

帖子

11

粉丝