MSP430 定时器TB中断应用实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MSP430 定时器TB中断应用实例

msp430定时器中断,实现功能:利用定时器TB0的中断实现板上led灯得闪烁。

TA和TB的设置相似,需要设置的寄存器有:

1、TBR:定时计数器主体,对定时计数器进行初始值设置。

2、TBCTL:控制寄存器,对定时器的各个属性进行设置,各位如图所示,(图中是TA的控制寄存器,把A改成B就是了)

TBSSELx是选择定时器时钟输入源,一般设置为2取系统时钟。

IDx是对输入时钟进行分频,0不分频,1为2分频,2为4分频,3为8分频

MCx为计数模式控制位,0为停止模式,1为增基数模式,2为连续计数模式,3为增/减计数模式

3、TBCCR0寄存器用于设置比较值,例如增加计数模式时,当TBR中的值增加到TBCCR0中的值时,产生中断。

程序代码:

#include "msp430.h"

#define led P1OUT

int main( void )

{

// Stop watchdog timer to prevent time out reset

WDTCTL = WDTPW + WDTHOLD;

P1DIR = 0x01;

TBR = 0;//设置计数器初值

TBCTL |= TBSSEL_2|0xc0|MC_1;//对寄存器TBCTL进行设置,TBSSEL_2为选择MCLK系统时钟,0xc0为8分频,MC_1为增计数模式

TBCCR0 = 0xfffd;//设置比较值,当TBR中的值增加到TBCCR0时,产生中断。TBCCTL0 &= ~CAP;//设置为比较模式

while(1)

{

led = 0x01;

do{;}

while(!(TBCCTL0 & CCIFG));//没有中断标志时进行空操作

TBCCTL0 &= 0xfffe;//对中断标志进行软件清零

led = 0x00;

do{;}

while(!(TBCCTL0 & CCIFG));

TBCCTL0 &= 0xfffe;

}

//return 0;

}

相关文档
最新文档