This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR2676:计时器 A 更改时钟分频器

Guru**** 2387830 points
Other Parts Discussed in Thread: MSP430FR2676
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1023812/msp430fr2676-timer-a-change-clock-dividers

器件型号:MSP430FR2676

您好!

我的 MSP430FR2676计时器 A 时钟分频器有问题。

如果我将时钟分频器从 ID__1更改为 ID_8 (设置 TACLR 后)、它也会更慢。

但是、如果我想将时钟分频器从 Id_8更改为 Id_1、那么它仍然很慢?

感谢你的帮助。

################## 代码##############

while (1)

  {    

       TA0CTL |= MC_STOP;
       TA0CTL |= TACLR;
       TA0CCTL0 = CCIE;                        
       TA0CCR0 = 5000;
       TA0CTL = ID__1;
       TA0CTL |= TASSEL_SMCLK | MC__UP;
      _delay_cycles (3000000);

       TA0CTL |= MC_STOP;
       TA0CTL |= TACLR;
       TA0CTL = ID_8;
       TA0CCTL0 = CCIE;                          
       TA0CCR0 = 5000;
       TA0CTL = tassel_SMCLK | MC__UP;          
       _delay_cycles (3000000);

   }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我尝试理解您的代码。 您正在将 Timer A 设置为在 TA0R 中达到5000值时创建中断 、但 您不会处理这些中断。 DELAY_CYCLE 函数与计时器中断无关。 它们是源自 MCU 激活操作的忙等待函数。 由于您不更改 MCLK、 __ delay_cycles (3000000);函数将等待相同的时间量。

    请查看以下有关计时器中断的示例:

    dev.ti.com/.../nodeContent

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    TA0CTL |= MC_STOP;

    这不会停止计时器、因为 MC__STOP=0。 请尝试:

    > TA0CTL =(TA0CTL &~MC_3);  // MC=0

    您的第二个示例实际上不会使用 ID__8运行计时器、因为最后一行设置 ID=0 (ID__1)。 我猜生成您症状的代码使用了以下内容:

    > TA0CTL |= ID_1; //将 ID_8更改为 ID__1

    哪个(与 MC 示例类似)不设置 ID=0、因为 ID_1_=0。 在本例中、您会这样做

    > TA0CTL =(TA0CTL &~ID_3);

    --------------

    主动式:尝试将 TA0CTL 设置为零敲碎打是极少需要的、很容易犯错。 我建议一次性设置所有内容:

    > TA0CTL = TASSEL_SMCLK | MC_UP | ID_8 | TACLR;

    完成所有其他操作后。 是的、这是一种风格、但它有助于让我摆脱麻烦。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢您的帮助!

    这解决了我的问题。 我犯了几个错误。