微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MSP430F5529 (七)定时器B

MSP430F5529 (七)定时器B

时间:11-28 来源:互联网 点击:
定时器B和定时器A有很多相同之处,学习的时候注意回忆Timer_A的 相关知识。注意,MSP430F5529中只有一个定时器B。

7.1定时器B的简介

7.1.1 特性(了解):

(1). 16位同步定时/计数,4种工作模式可选、4中长度可选;

(2). 可选可配置时钟源;

(3). 高达7个捕获/比较寄存器;

(4). 可配置PWM输出;

(5). 带有同步装载的双缓冲比较寄存器;

(6). 快速解码的中断向量;

7.2.2与定时器A的比较(相同点与不同点)

(1). TB的计数长度可以选择(8、10、12、16BITS),而TA只有16位;

(2). TB0CCRn寄存器是双缓冲的,且可以分组;

(3). 所有的TB输出可以被设为高阻状态;

(4). TB没有SCCI,即捕获器输入信号CCI没有被锁存;

看结构图,观察和TA有什么区别:

7.2Timer0_B寄存器介绍及设置)

声明:所有寄存器同样支持字和字节操作

所有寄存器初始化都为0x0000

7.2.1 TB控制寄存器TB0CTL(最常用最基本)(和TA有一点不同)

rw-(0)表示默认读写均为0

TBCLGGRP:TB0CLn分组控制

00:每个TB0CLn独立使用

01:TB0CL1+TB0CL2作为一组(TB0CCR1的CLLD位控制整组数据更新)

TB0CL3+TB0CL4作为一组(TB0CCR3的CLLD位控制整组数据更新)

TB0CL5+TB0CL6作为一组(TB0CCR5的CLLD位控制整组数据更新)

10:TB0CL1、2、3一组,(TB0CCR1的CLLD位控制整组数据更新)

TB0CL4、5、6一组,(TB0CCR4的CLLD位控制整组数据更新)

11:TB0CL0、1、2、3、4、5、6整合为一组,

(TB0CCR1的CLLD位控制整组数据更新)

CNTL:计数器长度控制

0016位,即最大可以计到0FFFFh

0112位,即最大可以计到0FFFh

1010位,即最大可以计到03FFh

11 8位,即最大可以计到0FFh

TBSSEL:时钟源选择。尽量不要选TACLK外部时钟源,因为如果TACLK和CPU时钟不同步,很容易出问题。(TB0CLK接P7.7引脚)

00TBCLK

01ACLK

10SMCLK

11~TBCLK

ID:第一次分频控制。ID0-1分频;ID1-2分频;ID2-4分频;ID3-8分频

MC:工作模式控制。(建议在修改定时器运行模式前先停止定时器(中断使能、中断标志、TACLR例外),以避免产生未知的误操作。)(和TA一样)

00停止模式:定时器停止

01增模式:定时器计数到TB0CCR0

10连续模式,定时器计数到0FFFH(16位)…12位、10位…

11增减模式:定时器加计数到TB0CCR0然后减计数到0000H

TBCLR:定时器清零位。该位置位会复位TA寄存器,时钟分频和计数方向。

TACLR位会自动复位并置0

TBIE:定时器中断使能

0:中断禁止

1:中断允许

TBIFG:中断标志位

0:没有中断发生

1:有中断挂起

7.2.2计数值存放寄存器TB0R

7.2.3扩展寄存器TBEX0

很简单,这个寄存器就是为了控制时钟源的二次分频(看结构图)。

该寄存器的低3为定义为TBIDEX:000-111分别表示1-8分频

7.2.4 捕获/比较寄存器TBCCR0-TBCCR6(共7个)

比较模式下,用来设定计数终值;

捕获模式下用来将捕获的TBR值存放进TBCCRx中。

7.2.5捕获/比较控制寄存器TB0CCTL0-TB0CCTL6:

CM:捕获模式设定 00不捕获

01上升沿捕获

10下降沿捕获

11上升和下降沿都捕获

CCIS:捕获源的选择 00CCIxA

01CCIxB

10GND

11VCC

SCS:同步捕获源,设定是否与时钟同步

0异步捕获

1同步捕获

CLLD:比较寄存器缓冲装载模式选择。

00 TB0CCRn的值(改变时)立即装载到TB0CLn

01当TB0R的值计到0时,进行装载

10增模式或者连续模式下,TBR0值计到0时,进行装载;

增减模式下,TBR0计数到TBCL0时,开始装载;

11TBR0计数到TBCL0时,开始装载;

CAP: 0-比较模式 1-捕获模式

OUTMOD:输出模式控制位。同TA一模一样

CCIE:中断使能,该位允许相应的CCIFG标志中断请求。

0-中断禁止 1-中断允许

CCI:捕获比较输入,所选择的输入信号可以通过该位读取

OUT:对于输出模式0,该位直接控制输出状态。

0-输出低电平 1-输出高电平

COV:捕获溢出位。该位表示一个捕获溢出发出,COV必须由软件复位。

0-没有捕获溢出发生1-有捕获溢出发生

CCIFG:捕获比较中断标志位。

0-没有中断挂起 1-有中断挂起

7.2.6 中断向量寄存器TB0IV

同TAIV一样,里面存放一个数字编号。

7.3重点讲TB和TA的不同之处

7.3.1没有再把CCI信号锁存了

TA作捕获器的时候,CCI为捕获信号,然后CCI被锁存输出 为SCCI;

但是,TB没有锁存。也就是说只能从CCI位查看输入信 号了。

7.3.2计数值位数可调了(其实无所谓,都可以16位那干嘛不用)

TA的计数值寄存器TAR只能是16位(0XFFFFh);

TB的计数值寄存器TBR可以选择是16、12、10、8位;

7.3.3两级缓冲比较

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top