LaunchPad-MSP430入门系列4-定时器模块(定时、计数、捕获)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 发生了中断事件