CH6-外围模块3-定时器计数器.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章;5.3.1 定时器/计数器概述;16位定时器/计数器;MSP430单片机定时器A的特点:;Timer_A的结构;;5.2 Timer_A的主计数器模块结构和原理;定时器模块(Timer Block);00: /1 01: /2 10: /4 11: /8;TASSELx时钟源选择位,可选外部时钟、辅助时钟、子系统时钟或外部时钟取反的信号输入作为时钟源 快捷宏定义:TASSEL_0, TASSEL_1, TASSEL_2, TASSEL_3 IDx预分频系数,可对时钟源进行1、2、4、8分频 快捷宏定义:ID_0,ID_1,ID_2,ID_3 通过时钟源和分频系数两组控制位,可以设置定时计数时钟源。在低功耗应用以及需要长时间定时或计时的情况下,可以用ACLK作为作为时钟,加上预分频,最长的定时计时周期可达16s。在高分辨率短时间应用之中,可以选择SMCLK作为时钟源。 若选择外部时钟TACLK,定时器可以作为计数器,累积从TACLK管脚上输入的脉冲,上升沿计数。若选择TACLK取反作为时钟源,TACLK的下降沿计数。 ;;定时器 A 的四种计数方式(Count Mode);Stop mode : the timer is halted 当不使用Timer时, 应将Timer配置为Stop mode , 这样可以降低芯片的功耗;;在增计数模式下,每个时钟周期TAR加1。在TAR值超过TACCR0寄存器(捕获比较模块0模式值)时自动清零,同时将Timer_A溢出标志位TAIFG置1。如果TA中断被允许,还会引发中断。改变TACCR0寄存器可以改变定是周期,且不存在初值装载问题,非常适合产生周期定时中断,只要改变TACCR0的值即可随意调整定时周期。 定时器工作于增计数模式时,如果改变TACCR0的值,当新周期大于旧周期时,定时器会在等于旧周期之前计数到新周期;当新周期小于旧周期时,定时器的时钟相位会影响到定时器相应新周期的情况。时钟为高电平时改变TACCR0的值,则定时器会在下一个时钟上升沿回0,如果低电平时改变TACCR0,则定时器接受新周期并在回0之前,就行增加一个时钟周期。;图: 增计数模式下重置计数周期;例1.在MSP430单片机中,为Timer_A配置时钟源及工作模式,使Timer_A在无需CPU的干预下,每隔1.3125s溢出一次(假设SMCLK=MCLK=1.048576MHz,ACLK=32.768kHz)。;例2:利用定时器定时功能,实现P1.0方波输出。;Continuous Mode 最大锯齿波方式;;在连续计数模式下,利用捕获比较寄存器捕获其他外部事件发生的定??数据,可以用来生产多个独立的时序信号;也可以用过改变TACCRx的值,产生独立时间间隔,输出一定频率的信号。 例如,可以在相应的比较寄存器TACCRx上加上一个时间差,不断增加TACCRx的值,使定时器每到一定时间间隔都能与TACCRx的内容相等,从而使中断标志置位,向CPU申请中断。这个时间差是当前时刻到下一次中断发生时刻所经历的时间(即相应TACCRx 中的值)。;例3:ACLK=32768kHz,MCLK=SMCLK=DCOCLK=800kHz,定时器A工作于连续计数模式,利用CCR0中断实现P3.1端口输出方波,同时利用定时器A溢出中断在P3.2端口输出方波。;//Timer0A0 中断服务程序区 #pragma vector=TIMER0_A0_VECTOR __interrupt void Timer_A0 (void) {P3OUT ^= 0x02; //P3.1取反输出 TA0CCR0 += 20000; //重新载入CCR0捕获/比较数据寄存器数据} //Timer0A1 中断服务程序区 #pragma vector=TIMER0_A1_VECTOR __interrupt void Timer_A1 (void) {switch(TAIV) {case 0: break; case 2: break; case 4: break; case 6: break; case 8: break; case 10: break; case 12: break; case 14: P3OUT ^= 0x04; //溢出中断,P3.2取反输出 break; default: break; }} ;Up/Down Mode 三角波方式;;例4:ACLK=32768kHz,MCLK=SMCLK=DCOCLK=800kHz,定时器A工作于增减计数模式,利用CCR0中断实现P3.1端口输出方波,同时利用定时器A溢出中断在P3.2端口输出方波。;//Timr0A0 中断服务程序区 #pragma v

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档