七、定时器Timer_B
来源:互联网 发布:2017淘宝金冠店铺排行 编辑:程序博客网 时间:2024/06/03 17:09
定时器B的简介
(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有什么区别:
TBCLGGRP:TB0CLn分组控制
01:TB0CL1+TB0CL2作为一组(TB0CCR1的CLLD位控制整组数据更新)
TB0CL3+TB0CL4作为一组(TB0CCR3的CLLD位控制整组数据更新)
TB0CL5+TB0CL6作为一组(TB0CCR5的CLLD位控制整组数据更新)
(TB0CCR1的CLLD位控制整组数据更新)
CNTL:计数器长度控制
00 16 位,即最大可以计到0FFFFh
01 12位,即最大可以计到0FFFh
10 10 位,即最大可以计到03FFh
11 8位,即最大可以计到0FFh
TBSSEL :时钟源选择。尽量不要选TACLK外部时钟源,因为如果TACLK和CPU时钟不同步,很容易出问题。(TB0CLK接P7.7引脚)
00 TBCLK
01 ACLK
10 SMCLK
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:定时器中断使能
1:中断允许
TBIFG:中断标志位
1:有中断挂起
7.2.2 计数值存放寄存器TB0R
7.2.3 扩展寄存器TBEX0
7.2.4 捕获/比较寄存器TBCCR0-TBCCR6(共7个)
捕获模式下用来将捕获的TBR值存放进TBCCRx中。
CM:捕获模式设定 00 不捕获
01 上升沿捕获
10 下降沿捕获
11上升和下降沿都捕获
01 CCIxB
10 GND
11 VCC
SCS:同步捕获源,设定是否与时钟同步
1 同步捕获
CLLD:比较寄存器缓冲装载模式选择。
00 TB0CCRn 的值(改变时)立即装载到TB0CLn
01 当TB0R的值计到0时,进行装载
10 增模式或者连续模式下,TBR0值计到0时,进行装载 ;
11 TBR0 计数到TBCL0时,开始装载;
CAP: 0 -比较模式 1- 捕获模式
OUTMOD:输出模式控制位。同TA一模一样
CCIE:中断使能,该位允许相应的CCIFG标志中断请求 。
0-中断禁止 1 - 中断允许
CCI :捕获比较输入,所选择的输入信号可以通过该位读取
OUT : 对于输出模式0,该位直接控制输出状态 。
0-输出低电平 1- 输出高电平
COV:捕获溢出位。该位表示一个捕获溢出发出,COV必须由软件复位。
0-没有捕获溢出发生 1 -有捕获溢出发生
CCIFG:捕获比较中断标志位。
7.3 重点讲TB和TA的不同之处
TA里面,我们在TACCRn中写入要比较的数值,然后让TAR中的计数值和TACCRn比较,如果相等了,相应的标志位就会置位;
TB里面,不仅有TB0CCRn,还多了一个二级缓存器TB0CLn。TB0CLn不能被直接进行操作,它的值只能来源于TB0CCRn。计数的时候,TB0R中的计数值不和TB0CCRn比较,而是和TB0CLn进行比较。
二级缓冲是为了防止我们在修改TB0CCRn的值的时候,对计数产生影响。因为计数器不直接和TB0CCRn比较,而是TB0CCRn把值赋给TB0CLn,由TB0CLn去和TB0R进行比较。所以也就有了CLLD位控制比较寄存器缓冲装载模式:(当向TB0CCRn中重新写数时)
00 TB0CCRn 的值立即装载到TB0CLn
01 当TB0R的值计到0时,进行装载
10 增模式或者连续模式下,TBR0值计到0时,进行装载 ;
11 TBR0 计数到TBCL0时,开始装载;
对于TB:
TBCLGGRP:TB0CLn二级缓冲寄存器分组控制
01:TB0CL1+TB0CL2作为一组(TB0CCR1的CLLD位控制整组数据更新)
TB0CL3+TB0CL4作为一组(TB0CCR3的CLLD位控制整组数据更新)
TB0CL5+TB0CL6作为一组(TB0CCR5的CLLD位控制整组数据更新)
(TB0CCR1的CLLD位控制整组数据更新)
0 0
- 七、定时器Timer_B
- 七、中断、定时器使用
- (七)scheduler 定时器
- (七)scheduler 定时器
- jmeter(七)定时器
- MSP430F5529 (七)定时器B
- (七)RxJava定时器:timer
- (七)2 内核定时器
- TCP协议里的七种定时器
- JavaScript基础(七) ---- 日期、定时器
- stm32学习笔记(七)定时器中断
- linux设备驱动归纳总结(七):2.内核定时器
- linux设备驱动归纳总结(七):2.内核定时器
- 深入浅出多线程系列之七:4种定时器
- Linux时间子系统之七:定时器的应用--msleep(),hrtimer_nanosleep()
- linux设备驱动归纳总结(七):2.内核定时器
- Linux时间子系统之七:定时器的应用--msleep(),hrtimer_nanosleep()
- Linux时间子系统之七:定时器的应用--msleep(),hrtimer_nanosleep()
- MSP430F5529 (三)统一时钟系统UCS-1
- MSP430F5529 (三)统一时钟系统UCS-2
- MSP430F5529 (四)电源&&&(五)工作模式
- MSP430F5529 (六)定时器Timer_A-1
- MSP430F5529 (六)定时器Timer_A-2
- 七、定时器Timer_B
- MSP430F5529 番外(二)纠正XT1配置错误
- 八、实时时钟RTC_A
- 番外三:讲一些最近遇到的问题以及中断系统的说明
- 讲讲我自己对ADC12模块的心得——msp430f5529
- 采样定理说的是什么?
- 单片机数字滤波的算法
- 独石电容、陶瓷电容、云母电…
- 正确认识单电源运放