应用程序篇第九节ppi模块使用_第1页
应用程序篇第九节ppi模块使用_第2页
应用程序篇第九节ppi模块使用_第3页
应用程序篇第九节ppi模块使用_第4页
应用程序篇第九节ppi模块使用_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

:nRF51822cortexm0PPI方式,PPIDMA功能有些类似,CPU进行参与。PPI主要的连接对象是任0LED灯的亮灭。因此要使用的外设就是3LED灯:通过提供的库文件。打开user文件夹中的工程:件就OK了,现在我们就来讨论下如何编写ppi.c在这个驱动子文件中的内容。其结构还是非常简单的。如图所示,PPI实际上提供了一种直连的机制,这种机制可以把一个外设发生的(event)来触发另一个外设的任务(task,整个过程不需要CPU进行参与。因此一个任务(task)通过PPI通道和(event)进行互连。PPI通道由两个终点寄存器组成,分别为:终点寄存器(EEP)和任务终点寄存器(TEP)。以把外设通过(event)寄存器的地址与终点寄存器(EEP)进行赋值。 void02.//0EFPTEP //1EFPTEP 17.有两种方式来使能或者关掉PPI频道:通过定时器2比较来触发定时器0开始计数。通过定时器1比较来触发定时器0停止计数。整个过程不需要CPU参与,和中断触发类型有点相上面设置PPI的启动时,谈到了定时器的比较,这个是我们分析的重点。如下图定时器结构图,定时器的比较的发生是当定时器计数器counter和捕获比器2的CC寄存器中预设值,当定时器计数器计数到预设值的时候就启动比较。 void19. //设置定时器位计数模式 24-bit模式22.0的设置比较简单了设置为普通的计数模式,依次计数。BITMODE设置为24bit.定时器1和定时器2的设置类似,区别就是为了错开比较的时间,也就是通PPI设置的定时器0的打开计数和关闭时间,因此CC寄存器的预设值有区别: void25.//2seconds溢出//SysClk=16//BITMODE=16//PRESCALER=//Theoverflowoccursevery//=65535/31250=2.097 = =( //Triggerinterruptforcompare[0] = = //Matchatevennumberof39. void42. //Generateinterrupt/eventwhenhalfoftimebeforethetimeroverflowshaspast,thatisat1,3,5,7...secondsfromstart.//SysClk=//BITMODE=16//PRESCALER=//nowtheoverflowoccursevery//=65535/31250=2.097sec = =( //Triggerinterruptforcompare[0] = = //Matchatoddnumberof56.2CC0x7FFF,通过之前所讲的定时器设置,这个1s1CC0xFFFF,这个比较触发的时间大概是2s,因此定时器0的开始任务与结束任务时间大概是1S。1,定时器2,定时器0,然后打开定时器1和定时器2等待触发比较的发生,当///********************C)COPYRIGHT2014文件名 *#include"nrf51h" "ledh"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论