程序:
//定时器B 模式二
#include <msp430x14x.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P6DIR |= BIT2;P6OUT |= BIT2; //关掉电平转换芯片(可以不用纠结)
P3DIR |= BIT4; // P3.4 output
TBCCTL0 = CCIE; // 打开捕获/比较中断
TBCCR0 = 50000;
TBCTL = TBSSEL_2 + MC_2; // SMCLK, contmode
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}
// 中断服务函数
#pragma vector=TIMERB0_VECTOR
__interrupt void Timer_B (void)
{
P3OUT ^= BIT4; // 取反 P3.4
TBCCR0 += 50000; // 必须递加重新从50000计数
}