微控设计网 www.Microcontrol.cn
Page 1 of 22
MSP430 F2 系列超低功耗单片机模块原理 第 9 章 TimerB
MSP430F2 系列 16 位超低功耗单片机模块原理
第 9 章 定时器 B Timer B
版本: 1.4
日期: 2007.4.
原文: TI MSP430x2xxfamily.pdf
翻译: 李璘 中国计量学院
编辑: DC 微控技术论坛版主
注:以下文章是翻译 TI MSP430x2xxfamily.pdf 文件中的部分内容。由于我们翻译水平有限,有
整理过程中难免有所不足或错误;所以以下内容只供参考.一切以原文为准。
详情请密切留意微控技术论坛。
微控设计网 www.Microcontrol.cn
Page 2 of 22
MSP430 F2 系列超低功耗单片机模块原理 第 9 章 TimerB
定时器 B(Timer_B,以后简写为 TB)是一个 16 位的定时/计数器,并复合了捕获/比较寄
存器。Timer_B3(拥有 3 个捕获比较器)只存在于 MSP430x2xx 中。
章节
9.1 Timer_B 介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2
9.2 Timer_B 操作方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-4
9.3 Timer_B 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-19
9.1 Timer_B 介绍
TB 是一个 16 位的定时/计数器,拥有 3 个或 7 个捕获/比较寄存器。TB 可以支持捕获/比较
功能、PWM 输出和定时器功能。TB 还有扩展中断的功能,中断可以由定时器溢出产生或捕获
比较寄存器产生。
TB 的特性如下:
l 4 种操作模式的异步 16 位定时/计数器
l 可选择配置的时钟源
l 3 个或 7 个可配置的捕获/比较器
l 可配置的 PWM 输出
l 加载时同步的双缓冲比较锁存
l 对所有 TB 中断快速响应的中断向量寄存器
9.1.1 和定时器A的相同点和不同点
定时器B和定时器A的不同点如下:
l 定时器B的长度是可编程的,可编程为8,10,12,16位
l 定时器B TBCCRx寄存器是双缓冲的,并可以编组
l 所有定时器B的输出可以为高阻抗状态
l SCCI位功能在定时器B中不存在
TB 的结构图见图 9−1.
图 9−1.TB 结构图
微控设计网 www.Microcontrol.cn
Page 4 of 22
MSP430 F2 系列超低功耗单片机模块原理 第 9 章 TimerB
16 位定时/计数器寄存器 TBR,随着时钟信号的每个上升沿增/减(这由操作模式决定)。TBR
可以被软件读写。另外,定时器在溢出时可以产生中断。TBR 可以由 TBCLR 位清除,如果 TB
处于 up/down 模式,TBCLR 置位也会清除时钟分频器和计数方向。
注意:对 TB 寄存器的修改
建议在进行修改定时器的操作(对中断允许、中断标志和 TBCLR 的操作除外)时,先停
止定时器,以避免产生未知的误操作。当定时器时钟和 CPU 时钟不同步时,对 TBR 的读会由
于定时器的运行而导致所读的结果是不可预料的。因此,当定时器运行时,需要多读几次,通
过软件多数表决的方式来确定正确的读数。对 TBR 的写操作是立即生效的。
TBR 的长度
定时器 B 可以通过 CNTLx 位将它配置为 8,10,12 或 16 位定时器。最大的计数数值 TBR
max
,
可以相应为 0FFh, 03FFh, 0FFFh, 和 0FFFFh。在 8-, 10-, 和 12-位模式下,对 TBR 写数据数据
时,数据的高 4 位必须为 0。
时钟源的选择和分频
定时器的时钟源可以是内部时钟源 ACLK, SMCLK,或 外 部 源 TBCLK 和 INCLK 。时 钟源
由 TBSSEL 位来选择,所选择的时钟可以通过 IDx 位进行 2、4 或 8 分频,当 TBCLR 置位时,
分频器复位。
9.2.2 启动定时器
定时器可以通过以下 2 种方式启动或重新启动:
l 当定时器计数到 MCX>0 并且时钟源处于活动状态时
l 当定时器模式为 up 或 up/down 模式时(即单调增和增减模式),定时器可以通过写 0
到 TBCL0 来停止计数。定时器可以通过写一个非 0 的数值来重新开始计数。在这种情
况下,定时器从 0 开始增计数。
9.2.3 定时器模式控制
定时器有 4 种操作模式,见表 9-1,他们分别是停止、单调增、连续和增减模式。操作模式
由 MCx 位来选择。
表 9-1 定时器模式
MCx
模式 说明
00
停止模式 定时器暂停
01
单调增模式 定时器循环地从 0 增到 TBCL0 的值
10
连续模式 定时器循环地从 0 连续增加到 0FFFFH
11
增减模式 定时器循环地从 0 增到 TBCL0 的值再连续减至 0
(1)单调增模式
微控设计网 www.Microcontrol.cn
Page 5 of 22
MSP430 F2 系列超低功耗单片机模块原理 第 9 章 TimerB
单调增模式用于计数周期不是TBR(max)的情况。定时器重复增计数值寄存器TBCL0的值,而
TBCL0的值取决于定时周期,如图9-2,定时器计数周期为TBCL0+1。当定时器的值等于TBCL0
时,定时器就回到0重新计数。如果当定时器的值大于TBCL0,而此时选择单调增模式,定时器
立即从0重新开始计数
图 9−2. 单调增模式
当定时器计数到TBCL0的值时, 中断标志TBCCR0 CCIFG位置位。当定时器由TBCL0返回0时,
TBIFG中断标志置位。图 9−3 说明了标志置位循环
图 9−3. 单调增模式标志位的变化
修改周期寄存器 TBCL0
在定时器在运行时修改TBCL0(并且TBCL0加载模式为立即模式), 如果新的周期值大于或
等于旧的周期值,或大于当前的定时器计数值,那么定时器立刻开始执行新的周期计数;如果
新周期小于当前的计数值,那么定时器回到0。但是,在回到0之前会多一个额外的计数。
连续模式
在连续模式中,定时器重复计数到TBR(max),然后重新从0开始增计数,如图9-4。捕获比
较寄存器TBCL0以及其他捕获比较器工作方式一样。
图 9−4.连续模式