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.

[参考译文] TM4C1294NCPDT:当定时器在输入边沿计时模式下工作时、如何在 GPTMCTL 寄存器的 TAEN 位清零后清零 GPTMTAR

Guru**** 2558250 points
Other Parts Discussed in Thread: EK-TM4C1294XL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/979738/tm4c1294ncpdt-how-to-clear-gptmtar-after-taen-bit-cleared-in-gptmctl-register-when-the-timer-works-in-input-edge-time-mode

器件型号:TM4C1294NCPDT
Thread 中讨论的其他器件:EK-TM4C1294XL

您好、专家先生

    当定时器在输入边沿定时模式下工作时、需要将 GPTMTAR 寄存器中的值清零。当 TAEN 位 第一次置位时、定时器在向上计数的方向上工作。一旦检测到边沿、计数器的值就会在 GPTMTAR 寄存器中捕获。  但我发现 在捕获到第一个边沿后、我无法清除 GPTMTAR 或 GPTMTAV 寄存器中的值。 当我禁用 TAEN 然后将其启用时、GPTMTAR 中的值不会复位为0。

   计时器是设计 为以这种方式工作、还是有一种解决方案可以以某种方式复位 TAR 或 TAV 寄存器?  

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

    不确定为什么需要清除 GPTMTAR、但是否尝试向 GPTMTAV 写入0?

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

    您好、Bob

       因为我只需要在 CCP 管脚上的电压为低电平时测量宽度、所以不用考虑高电压的时间、最简单的方法是在定时器开始前、检测到边沿时、每次清除 TAR。 我只需要读取 TAR 寄存器中的值。

       当我在调试模式下尝试在 TAEN 清零时直接清零 TAV 寄存器时、我发现 TAV 中的值不能清零。 看起来它是只读寄存器。

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

    数据表(SPMS433B)表13-8建议在 TxEN 切换时清除(适合模式)这些寄存器。 您如何对此进行测试? 还有勘误表 GPTM#13 [参考勘误表(SPMZ850G)第30页]。 您是否正在使用备用时钟源?

    也就是说、我已经写入了很多定时器捕获应用、并且我从不将计数器复位为0、而是捕获两个连续的事件并减去。 这样做可以避免触发事件和启动/清除计时器之间的(软件)延迟。

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

    Bruce、谢谢您! 我同意。

    Steven、

    有一个示例、展示了 Bruce 在 TivaWare 中的建议:

    C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\timer_edge_capture

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

    大家好、Bob/Bruce

       感谢您的帮助、问题看起来已经解决了、 我将向您提出任何其他问题、