新闻中心

MSP430--定时器B

作者: 时间:2016-11-26 来源:网络 收藏
MSP43016位定时器B模块是单片机的重要资源。MSP430F13/14/15x系列都有定时器模块B,但是不同单片机系列所带的比较/捕获模块功能有所不同。

1.定时器B模块:

本文引用地址://m.amcfsurvey.com/article/201611/322054.htm

TimerB与TimerA大部分相同,不同点在于定时器B的捕获/比较单元增加了锁存器。

二者区别:

(1)TimerB计数长度为8位,10位,12位,16位可编程,由TBCTL寄存器的CNTLx两位来配置,而定时器A的计数长度是固定的16位;

(2)TimerB没有实现定时器A中的SCCI功能位的功能;

(3)TimerB在比较模式下的捕获/比较寄存器功能与TimerA不同,增加了捕获比较锁存器;

(4)有些芯片型号当中TimerB输出实现了高阻抗输出;

(5)比较模式的原理有所不同:TimerA当中CCRx寄存器当中保存与TAR相比较的数据,而在TimerB当中CCRx中保存要比较的数据,但并不直接与定时器TBR相比较,而是将CCRx当中的数据锁存到相应的锁存器之后,由锁存器与TBR相比较。从捕获/比较寄存器相比较锁存器传输数据的过程的时间也是可编程的,可以是写入比较捕获寄存器之后立即传输,也可有一个定时器来触发传输。

(6)TimerB支持多种同步的定时功能,多重比较捕获功能和多重波形输出功能(PWM波)。而且,通过对比较数据的两级缓冲,可实现多个PWM波同步周期更新。

2.TimerB的逻辑结构图:


定时器B的逻辑结构基本与定时器A相同。

3.定时器B的寄存器:

寄存器相关位的配置过程参考定时器A和数据手册。


4.定时器B的比较功能

当定时器B工作在比较模式时,将数据写入捕获比较锁存器TBCCRx当中,当TBCCTLx当中的CLLDx位决定的装载事件的发生时,TBCCRx中的数据会自动地传输到比较寄存器当中。

5.TI提供的例程:

//
////
//
//MSP430F149
//-----------------
///||XIN|-
//| || HF XTAL (455k - 8MHz)
//--|RSTXOUT|-
//||
//|P4.1/TB1|--> CCR1 - 75% PWM
//|P4.2/TB2|--> CCR2 - 25% PWM
//
//M. Buccini
//Texas Instruments Inc.
//Feb 2005
//Built with IAR Embedded Workbench Version: 3.21A
//******************************************************************************

#include<msp430x14x.h>

void main(void)
{
volatile unsigned int i;
WDTCTL = WDTPW +WDTHOLD;// Stop WDT

//系统时钟初始化
BCSCTL1 |= XTS;// ACLK= LFXT1 = HF XTAL

do
{
IFG1 &= ~OFIFG;// Clear OSCFault flag
for (i = 0xFF; i > 0; i--);// Time for flag to set
}
while ((IFG1 & OFIFG));// OSCFault flag still set?

BCSCTL2 |= SELM_3;// MCLK= LFXT1 (safe)

//io口初始化
P4DIR |= 0x06;// P4.1 and P4.2 output
P4SEL |= 0x06;// P4.2 and P4.2 TB1/2 otions

//定时器B的配置
TBCCR0 = 128;// PWM Period/2
TBCCTL1 = OUTMOD_6;// CCR1 toggle/set
TBCCR1 = 32;// CCR1 PWM duty cycle
TBCCTL2 = OUTMOD_6;// CCR2 toggle/set
TBCCR2 = 96;// CCR2 PWM duty cycle
TBCTL = TBSSEL_1 + MC_3;// ACLK, up-down mode

_BIS_SR(CPUOFF);// Enter LPM0
}



关键词:MSP430定时器

评论


技术专区

关闭