基于AT91R40008微处理器软件定时器设计.docxVIP

基于AT91R40008微处理器软件定时器设计.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于AT91R40008微处理器软件定时器设计

基于AT91R40008微处理器的软件定时器设计       引言       当前,嵌入式系统的软件代码日趋复杂然 而,由于存储器、定时器等硬件资源仍然相对有限        如何在不影响系统整体性能的情况下,为嵌入式系统提供优异的定时性能,使系统能够高效运行,已是一个值得关注的问题        1软件定时器        软件定时器是一组定时器实体的集合,是一种针对不同定时服务进行统一管理的多任务链表类型数据结构软件定时器可使系统在某一确定时刻执行指定操作它以可编程定时/计数器或单稳延时电路为基础        利用硬件定时器产生的定时中断来实现虽 然软件定时器也需要占用CPU时间,但是相对于硬件定时器来说,它的资源多,定时时间长,使用灵活,实现起来简单方便,因而在复杂系统或定时器工作方式比 较复杂的应用场合更能体现其价值 对定时器的组织和管理常用的有多队列式和单链表式前者通 过将定时器划分成不同时长的队列来减少每次参与计数的定时器个数         这种组织方式在空负载检查时存在很多冗余操作,而真正有效的操作只占少部分后者则通过将定时器采取先进先出方式来组织定时器队列,这种方式使 用起来虽然比较简单,但存在以下两个问题:一是定时器队列太长找到所有到点定时器的时间开销难以接受;二是在当时钟中断发生时, 需要对所有的定时器的时长域进行减法操作,而这部分的时间性开销很大        本文采用的是单链表定时器队列,但在定时器队列组织方式上,根据各个定时器节点的定时值,对其按升序进行排序,然后按照后一个定时器的值是前面所有定时 器值加上本身值的规则对此节点重新赋定时值以使所有的到 点定时节点集中于队列的前面由于所有定时器节点的隐含值 均递减,故可形成一个相对时长定时队列这样,在每次产生 时钟中断时,只需修改第一个定时器节点的值即可,从而大大降低了时钟中断处理函数的工作量当需要添加新的定时器节点时,可在插入定时器进入列表前,根据第一 项来修改超时值对于这样的组织管理方式,由于第一个节点 就是当前定时器链表中定时时间最短的节点,且对链表的到期操作只需要集中在第一个节点上,故能减少对定时器链表多余的冗余操作,也免去了查找定时节点的开 销 2 AT91R40008微处理器       AT91R40008是美国ATMEL公司推出的一款基于ARM7TDMI嵌入式微处理器的16/32位微处理器该器件的定时器/计数器模块含有三个完全相同的16位定时器/计数 器通道每个通道都能独立编程来完成多种功能(如频率测 量、事件计数、时间间隔测量、脉冲产生、延迟和脉冲宽度调制等)每个通道有三个外部时钟输入、5个内部时钟输入和2个可由用户配置 的多功能I/O此外,每个通道还可驱动一个内部信号,以 通过A-IC(先进中断控制器)产生处理器中断AT91R40008 器件中的定时器/计数器模块有两个控制所有通道的全局寄存器其中模块控制器寄存器可以使三个通道由同一条指令同时启动,而模块 模式寄存器则为每一个通道定义了外部时钟输入,并允许它们级联每一个定时器/计数器都可以独立工作于两种模式,分别是捕获模式和 波形模式前者用于对信号的测量,后者则允许产生波形通过TC通道模式寄存器的WAVE位可以控制定时器/计数器的工 作模式定时器的重新设定和启动可由触发条件决定每个模式下通常有三种类型的内部触发和一个外部触发其内部的三种触发类型分别是:       (1)软件触发        每个通道有一个软件触发,可通过设定TC通道控制寄存器的SWTRG来得到        (2)SYNC触发        每个通道有一个同步触发该信号被响 应和同一个软件的一般效果触发相同所有通道的同步信号均 可通过设定TC模块控制寄存器的SYNC来同时响应        (3)RC比较触发        如果CPCTRG在TC通道模式寄存器被置位,那么,RC将在每个通道中执行,此时如果计数器与RC寄存器中的数值相匹配,则将得到一个RC比较触发        事实上,定时器通道也能配置成一个外部触发器在捕获模式中,外部触发器信号能在TIOA和TIOB之间被选择而 执行一个触发而在波形模式中,外部事件则可通过 TIOB、XC0、XC1或XC2编程来执行一个触发如 果产生一个外部触发,那么,脉冲周期必须比系统时钟周期更长才能保证该触发被检测到       3软件定时器的实现        由于AT91R40008中的三个定时器/计数器都是16位,所以每个计数器的值只能从0x0000增加到0xFFFF,在溢出中断以后,这个值将重新从 0x0000开始该特性限制了定时器/计数器单次最长的 定时时间为此,本文采用改进的单链表方式组织定时器链 表,这样,在定时器中断上,硬件定时器不再周期性地产生中断请

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档