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.

[参考译文] MSP430FR2433:计时器配置和500毫秒延迟

Guru**** 2538955 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1082752/msp430fr2433-timer-configurationa-nd-500-ms-delay

部件号:MSP430FR2433

大家好,团队

我在将计时器中断设置为500毫秒时感到困惑,

请告诉我在哪里需要提供值来设置500ms 的中断

注:我已经阅读了用户指南,但我没有得到太多的明确性。请告诉我这一点  

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

    示例 msp430fr243x_TA1_06.c 的作用非常相似(但具有不同的常数)。 尝试:

    https://dev.ti.com/tirex/explore/node?node=AIB99aTSfpLZmFdn1w5QTQ__IOGqZri__LATEST

    和更改:

    > TA1CCR0 = 50000;

    > TA1CCR0 = 16384-1; // ACLK=32kHz,因此/2为半秒

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

    你(们)好  
    感谢您的快速响应,

    它是否适用于每个源代码 clk。就像我要配置 SMCLK 而不是,

    TA0CCTL0 |= CCIE;
    TA0CCR0 =?;//持续100毫秒
    TA0CTL = tassel_2 | mc_1;

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

    是的,它取决于输入时钟的速度,因为(在 UP 模式下) CCR0实际上是输入时钟的(16位)分隔符。

    ACLK 速度相当慢,因此产生长时间(-ish)延迟并不困难。 假设 SMCLK=1MHz,半秒为500000个刻度,这将不适合16位。 但您可以使用 ID 分隔符(=1/2/4/8)将输入时钟减慢至(例如) 1MHz/8=125kHz,并设置 CCR0=125000/2=62500:

    > TA0CCR0 = 1000000UL/8/2-1; // SMCLK=1MHz/ID__8/2为半秒

    > TA0CTL = tassel_2 | ID_8 | MC_1;  // SMCLK/8,UP

    除此之外,您可以使用 TA0EX0寄存器除以另一个/8 [参考用户指南(SLAU445I)表13-9]

    [编辑:忘记了用于 UP 模式 CCR0的(-1)。]

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

    谢谢布鲁斯。