大家好,团队
我在将计时器中断设置为500毫秒时感到困惑,
请告诉我在哪里需要提供值来设置500ms 的中断
注:我已经阅读了用户指南,但我没有得到太多的明确性。请告诉我这一点
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.
大家好,团队
我在将计时器中断设置为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为半秒
是的,它取决于输入时钟的速度,因为(在 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)。]