观察结果:使用 Timer0_A3和 Timer1_A3时、均由 SMCLK 驱动、观察到2个输出的相位关系并不总是恒定的、例如由电源中断引起的。
目的解决方案:使用 Timer0_A3输出作为 Timer1_A3的输入。
问题是了解如何执行此操作。 系列指南13.2.1.1指示"定时器时钟可以来自 ACLK、SMCLK 或外部来自 TAxCLK 或 INCLK。" 如图1-6所示。 我不清楚提供内部或外部连接的代码。
例如、我有用于驱动 P1.1的 Timer0_A3的工作代码、如下所示
到 P1.1的//设置硬件时钟输出
TA0CCR0 =(16*8)-1; // PWM 周期
TA0CCTL1 = OUTMOD_7; // CCR1复位/置位
TA0CCR1 = 16*4; // CCR1 PWM 占空比
TA0CTL = tassel_SMCLK | MC__UP | TACLR; // SMCLK、向上计数模式、清除 TAR
然后、第二部分将 Timer0_A3输出连接到 Timer1_A3输入、并根据 Timer1_A3 (不起作用)产生中断。 我认为我对建立计时器内部或外部连接的代码缺乏了解。 如果我仅限于外部连接、我可以控制哪个引脚吗? 或者、如 MSP430FR3422数据表的表6-12所示、它可能仅限于 P1.6
//设置中断来控制开/关时序
TA1CCTL0 = CCIE; //启用 TACCR0中断
TA1CCR0 =(16*200)-1; //周期
TA1CTL = tassel_TACLK | ID_8 | MC__Continous; //设置外部输入、/8
//TA1CTL = tassel__INCLK | ID_8 | MC__Continous; //设置内部输入、/8