我正在尝试使用 Timer B 外设通过 MSP430FR2355在 P2.0上生成38kHz 方波、但看不到 P2.0切换。
这是我的代码。
在 IAR IDE 的寄存器监视窗口中、我可以看到定时器寄存器计数增加到421、然后计数下降到0、然后再次递增和递减。
如果您发现我所做的任何错误、请告诉我。
P2SEL0 |= 0x01; // TB1.1在 P2.0上;
P2SEL1 &= 0xFE; // 为 P2.0选择辅助功能。
P2DIR |= 0x01; // TB1.1是输出。
Timer_Register_value_for_38_kHz_with _16_MHz_SMCLK = 421;
TB1CCTL0 |= CCIE; //启用捕捉/比较中断。
//该位启用的中断请求
//相应的 CCIFG 标志。
// 0b =中断被禁用
// 1b =中断被启用
// 时序现在开始、MC_3 =向上/向下
TB1CTL = TBSSEL_2 + MC_3 + ID_0 + TBCLR; // 选择 SMCLK; 预分频= 1、清除计时器(然后复位
// 自动读为'0'。 运行增/减模式、定时器向上计数到 CCR1值、然后向下计数到0。
// TBSSEL = 10b = SMCLK
TB1CCR0 = Timer_Register_value_for_38_kHz_with _16_MHz_SMCLK;// 16、000、000 / 421 = 38kHz
TB1CCR1 = Timer_Register_value_for_38_kHz_with _16_MHz_SMCLK;// 16、000、000 / 421 = 38kHz
TB1CCTL1 = OUTMOD_4; //切换模式;