下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
青风带你玩蓝nRF51822系列 作者 青风电子社区作者 青:淘宝店:技术群硬件平台:青云QY-nRF51822开发按键中下面我就来分别介绍下nRF51822的按键中断控制方式。中断控制的效率很高,一旦系统IO口出现上升沿或者下降沿电平就会触发执行中断内的程序,这样可以了cpu的占有率。中断是指由于接收到来自硬(相对于处理器和内存)的异步信号或来自软件的同步信号,而进行相应的硬/软件处理。发出这样的信号称为进行中断请求(intuptqut,Q。硬件中断导致处理器通过一个上下文切换(otxtth)来保存执行状态(以程序计数器和程序状态字等寄存器信息为主;软件中断则通常作为PU指令集中的一个指令,以可编程的方式直接指示这种上下文切换,并将处理导向一段中断处理代码。中断在计算机多任务处理,尤其是实时系统中尤为有用,这样的系统,包括运行于其上的操作系统,也被称为“中断驱动的”。简单的来说就比如某个人正在做某事,突然来了个,他就要停下手中的事情去接,中断相当于这个。触发中断后跳出原来运行的程序去执行中断处理。在使用nRF51822完成中断时,需要设置如下几个地方:第第二:外部GPIO中断函数的设置硬件准备:在青云nRF51822豪华开发板上设置了2个用户按键如下图所示:SW1SW2分别P0.16P0.17IO管脚相连IO管脚为低的时候可以判断管脚已经按下。key的按下来控制led的亮灭。硬件上设计是比较简单的,这个普通的MCU的用法一致。软件准备:库文件。打开user文件夹中的key如上图所示:码农只需要自己编写红色框框里的两个文件就OK了,因为采用子函数的方式其中led.c在上一节控制LED灯的时候已经写好,现在我们就来讨论下如何编写exit.c这个驱动子文件。exit.c文件主要是要起到两个作用:第一:初始化开发板上的按键中断。第二:编写中断执行代码。完成这两个功能够就可以在main.c文件中直接调用本驱动了。首先来认识下如何进行中断设置。那么先来看GPIOET的功能说明:实际上就两种模式,一个任务模式,一个事件模式。其中任务模式作为输出使用,而事件模式就作为中断触发使用。任务模式有三种状态:置位,清零,翻转。事件模式三种触发状态:上升沿触发,下降沿触发,任意变化触发。整个GPIOTE寄存器的个数也是非常少的,如下图所示:我们使用到了按键中断,实际上使用到了事件模式下面将主要讨论这个模式,任务模式后面有专门的历程进行讨论。在CONFIG这个寄存器里详细的进行了事件模式的配置,如下图所示,三个红色框框里的寄存器位我们需要进行配置:下面看看代码:NRF_GPIOTE->CONFIG[0](GPIOTE_CONFIG_POLARITY_HiToLo<<|(16<<//中断配置(详细说明请参看青风上面一段代码的编写严格按照了寄存器要求进行,首先是 MODE,也就是模式设置,我们设置成事件模式。PSEL设置对应的管脚,我们选择了SW1管脚P0.16作为触发管脚,POLARIY极性设置为下降沿触发。设置好了工作方式后,我们就需要进行中断的使能了:NVIC_EnableIRQ(GPIOTE_IRQn);//NRF_GPIOTE- =GPIOTE_INTENSET_IN0_Set 使能中断类型上面的任务基本上就可以把IO管脚中断配置好了,如果你搞清楚寄存器,那么这个配置中断函数的设计,主要任务就是要求判断中断发生后LED灯进行翻转,当然你可以加入其它的任务。void09.17.{}那么主函数就是十分的简单了,直接调用我们写好的驱动函数,判断按键按下后就可以翻转O口,LD灯指示相应的变化。函数如下所示:/********************CCOPYRIGHT2014*文件名*描 *描 :按键中*作 :青*#include"nrf51
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年财达证券股份有限公司资产管理业务委员会招聘备考题库带答案详解
- 2026年中国商业联合会招聘备考题库带答案详解
- 梧州市中医医院2026年人才招聘备考题库参考答案详解
- 2026年上海市儿童医院财务部主任招聘备考题库及参考答案详解一套
- 2026年新疆北屯额河明珠国有资本投资有限公司招聘备考题库完整答案详解
- 2026年绵阳市三台县面向县内乡镇公开选调工作人员备考题库参考答案详解
- 2026年县中医院招聘护工备考题库及完整答案详解1套
- 2026年四川三河职业学院人才招聘19人备考题库有答案详解
- 2026年山东省滕州市第一中学山师大校园招聘备考题库(一)及答案详解参考
- 2026年丽水市人民医院府前院区招聘备考题库及一套答案详解
- 2025年公安部交管局三力测试题库及答案
- 2025人教版八年级上册数学教学计划实践活动安排
- 安徒生童话《枞树》
- 肾癌影像学表现课件
- 妇科手术加速康复专家共识
- 新供应商导入开发评估报告
- 2024年大庆职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 修订版新编日语第三册单词表
- 《科学家拉瓦锡》课件
- 智能电器课程设计-智能脱扣器脱扣电路设计
- 西工大工程材料金属材料
评论
0/150
提交评论