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.

[参考译文] MSPM0G3107:如何在一次性向下计数模式下正确地重新启动基本计时器

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1352032/mspm0g3107-how-to-properly-restart-a-basic-timer-in-one--shot-down-counting-mode

器件型号:MSPM0G3107

您好!

我对 如何正确重新启动基本计时器有疑问(我遇到了怪异的行为)。

如果我将 Timer A 配置 为"单次向下计数"模式、并使"零事件"中断得到

每次 计时结束时回调,我是否应该在重新启动计时器之前手动停止计数器?

那么、二者中的哪一个是 正确的 ?

选项1:

DL_TimerA_stopCounter (TIMER_0_INST);

DL_TimerA_setLoadValue (TIMER_0_INST、TIMEOUT_ms * TIMER_CLK_FREQ_kHz);

DL_TimerA_startCounter (TIMER_0_INST);

选项2:

DL_TimerA_setLoadValue (TIMER_0_INST、TIMEOUT_ms * TIMER_CLK_FREQ_kHz);

DL_TimerA_startCounter (TIMER_0_INST);

谢谢。

米科拉

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

    尊敬的 Mykola:

    您无需手动重新加载计时器。  

    如果您处于单次向下计数模式、您应该能够调用  DL_TimerA_startCounter、这将设置 CTRCTL。 EN 位、以再次从加载值开始计数。

    更改加载值的唯一原因是您希望下一个加载->零时间范围有不同的期间。 在这种情况下、选项2是正确的。  

    此致、
    布兰登·费舍尔

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

    尊敬的 Brandon:

    感谢您的回复。  

    我确实使用了变量周期、并在每次重新启动计时器之前重新加载该值。

    我遇到的问题是、当我从 LFCLK 为计时器计时时、除非我添加延迟或调用  DL_TimerA_stopCounter、否则无法从 IRQ 处理程序重新启动计时器。

    如果我使用更快的时钟源为外设计时、则它会按预期运行、我无需停止它或使用任何延迟。 可能是  

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

    可能是我的设置中的一个问题、但我不确定。 如果您观察到相同的行为、则会感到好奇。  

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

    尊敬的 Mykola:

    我正在检查这方面的设计、但在我看来、它像是 CTRCTL。 即使计数器为零、当这里触发零中断时、EN 位仍被置位。 我怀疑此位需要一个 TIMCLK 周期才能清除、但当 CPU 在或80MHz 下运行时、在该 TIMCLK 发生之前、您可能会有数千个32MHz 周期。  

    那个 CTRCTL。 EN 位是 DL_TimerA_startCounter 设置的情况。 如果不将其清除、则无效。 因此、在这种情况下适合调用停止计数器函数、因为当* TIMCLK 慢得多时、CPU 更新该寄存器值的速度可以快于硬件路径。

    我会在通过任一方式进行确认、如果是这种情况、就告诉您。  

    此致、
    布兰登·费舍尔

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

    尊敬的 Brandon:

    感谢您对此进行深入研究、这对我来说很合理。

    此致、

    米科拉