LaunchPad-MSP430入门系列4-定时器模块(定时、计数、捕获)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LaunchPad-MSP430入门系列4-定时器模块

(定时、计数、捕获)

Version 1.2

文先,介绍几个英文缩写的意思以及一些注意的地方。

1.Timer0/1 定时器0/1,在User's Guide中用的是TimerA/B,所指的也是Timer0/1 。

G2553Datasheet中用的是Timer0/1 ,本文以G2553Datasheet为准。全文以Timer0

为例,Timer1类同。

2.TAxR(x = 0/1)定时器x对应的计数器,这是一个只读寄存器。硬件自动驱动计数。

3.EQUy(y = 0/1/2)计数事件发生寄存器,当TAxR = TAxCCRy时EQUy置1。

4.

定时器简介

MSPG2553共有两个定时器,Timer0、Timer1,他们都是十六位的定时、计数器,内含三个捕获、比较寄存器。两个定时器均支持多个捕获、PWM输出、间歇性计时,定时器包含多个中断源,可以是计数溢出中断、捕获中断等等。

定时器包含:

●同步十六位定时、计数器运行模式。

●时钟源可从MCLK、SMCLK、ACLK任意选择。

●三个比较、捕获寄存器。

●中断向量寄存器能快速解码的所有定时器中断

本文以Timer0为例详细介绍430的定时器模块,下图是Timer0组成框图

0-1定时器0组成框图

下面简要介绍一下该硬件框图的意思,从左上角看,首先是一个时钟源选择寄存器TASSELx,通过该寄存器选择定时器的时钟源,选择了时钟源后有一个分频器Divider,相应的设置寄存器是IDx,再过来就到一个定时器的核心部分,一个16位的定时器TAR。其右侧有一个定时器的计数模块,MCx寄存器用来设置计数模式。

接下来,TAR正下方有三个横线,右侧标有CCR0、CCR1、CCR2,意思是CCR1、CCR0的框图和下方CCR2的框图是一样的。此处省略不写。在CCR中,左上角为一个捕获源选择寄存器。可以从CCI2A、CCI2B、GND或者VCC选择捕获源,选择捕获源后有一个选择捕获模式寄存器Capture Mode,然后过来有一个捕获溢出状态寄存器COV,SCS同步/异步捕获模式选择位,然后连接到捕获比较寄存器。下方为模式选择寄存器,具体设置可以查看相应的寄存器设置。

这里仅是大概介绍一下Timer0的寄存器,具体的设置使用还看参考相应的寄存器并结合例程慢慢学习理解。

定时器运行方式

下面简要重点介绍定时器计数模块的四种模式以及7种输出模式。

Timer0有一个在不断计数的只读寄存器TA0R。计数器的计数模式共有四种,

停止模式(Stop mode)、连续增计数模式(Up mode)、递增计数模式(continuous mode)、增减计数模式(Up/down mode)。由上图可知,这四种模式可以通过MCx寄存器进行设置。

以上四种模式可以由下图可以很好理解。

0-2四种计数模式

1.Stop模式计数器不工作。

2.连续计数模式为计数器从零开始连续增计数一直到0xFFFF即65535,

然后又重新从零开始计数。

3.递增计数模式与连续计数模式仅有一点点区别,递增模式为计数器连

续增加到TA0CCR0(即图中的CCR0)中的值后又重新从零开始计数。

TA0CCR0的值时可以在程序中直接赋值的。

4.递增递减模式也很好理解,计数器从零开始计数到CCR0后又自动减数,

到零后又增计数,就像三角波一样。

每一个捕获比较模块都有一个输出单元,这个输出单元专门用来产生以下

如PWM的波形信号,每一个输出单元都可以通过配置OUTMOD寄存器的值来

设定八种信号输出模式,

引脚输出,还要看相应的数据手册Datasheet。

下面再用几张图片详细介绍在不同计数模式下的输出态。

1.增计数模式下的输出

0-3增计数模式

2.递增计数模式下的输出

0-4递增计数模式

3.第增/第减计数模式下的输出

0-5递增计数模式

以上几种输出模式一般用于PWM信号的发生。具体的使用在讲完寄存器后再举一个输出PWM信号的程序。

接下来再介绍一下定时器的捕获/比较功能,具体应查看技术手册。

●捕获模式

捕获模式可以用于速度计算或时间测量。CCIxA、CCIxB的捕获源可以连接到外

部引脚或者内部信号,可以通过设定CCISx、CMx位让寄存器捕获上升、下降,

或者两个输入信号的边沿。输入信号的电平可以通过CCI位读取。

当设置寄存器CAP = 1时,使能捕获模块,

●比较模式

比较模式设置在CAP = 0的情况向,比较模式用于产生PWM信号。或者在指定

时间里输出终端信号,当TAxR计数到TACCRx时

⏹建立起CCIFG位

⏹中断事件发生标志位EQUx = 1

⏹EQUx的隐含改变将影响输出模式

⏹输入信号CCI被锁上入SCCI

定时器中断

这里以定时器0为例,定时器1同。

定时器的中断可有定时器TA0CCR0溢出产生,也可由TA0CCRx(x =1/2)溢出产生、捕获/比较事件发生引起的中断,前者有一个专用的中断向量,TIMER0_A0_VECTOR,而后者用的TIMER0_A1_VECTOR,至于是哪一个中断时间发生,还要根据标志位来判断。

定时器寄存器

1.TA0CTL ,Timer0 Control Register

1.1TASSELx 定时器时钟选择位,该位的值为

00选择时钟源TACLK

01选择时钟源ACLK

10 SMCLK

11INCLK(指定器件该位可选,详见指定装置Datasheet)

1.2 IDx 输入时钟分频选择位,该位的值为

00 /1

01 /2

10 /4

11 /8

1.3 MCx模式控制位,

00 停止模式:定时器停止

01 Up mode:定时器增计数到TA0CCR0的值

10 Continuous mode:定时器计数到0FFFFh

11 增减计数模式:定时器计数到TA0CCR0的值后减计数到0

1.4 TACLR 定时器清除位,该位置1,清除计数器的值归零、初始化时钟分频位、计

数分频位,该位置1后自动清零。

1.5 TAIE 定时器中断使能位

0 禁止中断

1 使能中断

1.6 TAIFG 定时器中断发生标志位

0 没有发生中断事件

1 发生了中断事件

相关文档
最新文档