我不熟悉此 MCM DRV91680和 MSP430系列。
我通过逐个练习核心功能来学习此 MCM。
Timer B PWM 控制中存在一些问题。
我已经尝试了很多次、但仍然没有信号出来。
这是我的代码。
#include
void main (void)
{
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
CCSCTL0 = SCSKEY + WSEN + DIVA_8 + DIVS_0 + DIVM_1;// SMCLK = 25MHz = MCLK SMCLK=12.5m ACLK=3.125M
///PWM 引脚配置
P2DIR |= 0xFE;//设置 P2.1、P2.2、P2.3、P2.4、 P2.5和 P2.6作为输出
P2SEL |= 0x7E;//端口2用作定时器输出
TBCTL |= TBSSEL_0;//时钟源。 主时钟
TBCTL |= ID_0;//时钟分频器。 25MHz 主时钟分频器
TBCCR0 = 1000;//周期定时器 B 计数、1250计数表示50us
//将 Put 模式设置为 GPIO 低电平
TBCCTL1 = OUTMOD_0;
TBCCTL2 = OUTMOD_0;
TBCCTL3 = OUTMOD_0;
TBCCTL5 = OUTMOD_0;
TBCCTL4 = OUTMOD_0;
TBCCTL6 = OUTMOD_0;
//复位比较
TBCCR1 = 0x00;
TBCCR2 = 0x00;
TBCCR3 = 0x00;
TBCCR4 = 0x00;
TBCCR5 = 0x00;
TBCCR6 = 0x00;
_bis_SR_register (GIE);
TBCCR1 = 100;
TBCCR2 = 100;
TBCCR3 = 100;
TBCCR4 = 100;
TBCCR5 = 100;
TBCCR6 = 100;
TBCCTL1 = OUTMOD_0;
TBCCTL2 = OUTMOD_6;
TBCCTL3 = OUTMOD_0;
TBCCTL5 = OUTMOD_0 | BIT2;
TBCCTL4 = OUTMOD_0;
TBCCTL6 = OUTMOD_0;
TBCTL = 0x0000;//清除控件
TBCTL = TBSSEL_2 | TBCLR | MC_1;
while (1){}
}
>