MSP430F149定时器B1.定时器B模块: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|-//|||HFXTAL(455k-8MHz)//--|RSTXOUT|-//||//|P4.1/TB1|--CCR1-75%PWM//|P4.2/TB2|--CCR2-25%PWM////M.Buccini//TexasInstrumentsInc.//Feb2005//BuiltwithIAREmbeddedWorkbenchVersion:3.21A//******************************************************************************#includemsp430x14x.hvoidmain(void){volatileunsignedinti;WDTCTL=WDTPW+WDTHOLD;//StopWDT//系统时钟初始化BCSCTL1|=XTS;//ACLK=LFXT1=HFXTALdo{IFG1&=~OFIFG;//ClearOSCFaultflagfor(i=0xFF;i0;i--);//Timeforflagtoset}while((IFG1&OFIFG));//OSCFaultflagstillset?BCSCTL2|=SELM_3;//MCLK=LFXT1(safe)//io口初始化P4DIR|=0x06;//P4.1andP4.2outputP4SEL|=0x06;//P4.2andP4.2TB1/2otions//定时器B的配置TBCCR0=128;//PWMPeriod/2TBCCTL1=OUTMOD_6;//CCR1toggle/setTBCCR1=32;//CCR1PWMdutycycleTBCCTL2=OUTMOD_6;//CCR2toggle/setTBCCR2=96;//CCR2PWMdutycycleTBCTL=TBSSEL_1+MC_3;//ACLK,up-downmode_BIS_SR(CPUOFF);//EnterLPM0