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.

[参考译文] TM4C123GE6PM:如何设置计时器来测量边沿间隔

Guru**** 649970 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/940554/tm4c123ge6pm-how-to-set-up-a-timer-to-measure-edge-interval

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

您好!

在了解如何设置计时器来测量输入频率两个边沿之间的间隔时、我遇到了一些问题。 在器件数据表中、它显示 "在边沿计时模式下、计时器配置为24位或48位递增或递减计数器..."  推断使用的计数器为32或64位。 但是、在 Tiva 驱动程序用户指南中、我可以找到的唯一时间测量选项是

Timer_CFG_A_CAP_TIME -半宽边沿时间捕获

Timer_CFG_A_CAP_TIME_UP -半宽边沿时间捕获、向上计数而不是
向下(不适用于所有器件)

这些建议为16或32位。 似乎没有执行全宽时间测量的选项。

如何设置?

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

    尊敬的 Andy:

    首先、我想您想做一些事情、比如捕捉上升沿和下降沿、以便正确测量周期的长度?

    如果是这样、我们在最新的 TivaWare 版本中提供了一个示例、用于 EK-TM4C1294XL LaunchPad。

    此示例位于 [Install Path]\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\timer_edge_capture

    这样一个项目可以顺利移植到 TM4C123x 系列、我认为这正是您所需要的、并且可以帮助您进行开发。 如果您在移植方面遇到问题、请告诉我。

    现在、关于这里的问题...

    [引用用户="Andy Worsley89"]在边沿计时模式中,计时器配置为24位或48位递增或递减计数器..."  推断使用的计数器为32或64位。 但是、在 Tiva 驱动程序用户指南中、我可以找到的用于时间测量的唯一选项是

    24位和48位命名规则假设在 GPTM 模式下使用预分频  器将8位预分频器的16位提高到24位、或在宽 GPTM 模式下使用16位预分频器的32位提高到48位。 表11-3显示了包含预分频器的计时器。

    [引用 user="Andy Worsly89">这些建议为16或32位。 似乎没有执行全宽时间测量的选项。[/quot]

    表11-3还指出、32/64位的连接定时器仅支持单次触发和周期性测量。 因此、对于边沿捕获模式、您只能使用24位(16+8位预分频)或48位(32+16位预分频)选项、这是 driverlib 中反映的内容。

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

    您好!

    感谢您的回答。 我采用了该示例并将其移植到我使用的变体中。 我不喜欢使用两个通道来进行一个频率测量的想法、因此我更改了它以检测任一边沿、并仅从上一个边沿中减去电流1。 这基本上是可行的、但我发现它运行得太快。 我使用了以下驱动程序函数:

       TimerClockSourceSet (WTIMEer2_base、timer_clock_PIOSC);

    但当我进行测量时、可以发现时钟频率是以80MHz 运行、这是系统时钟频率、而不是精确内部振荡器频率。 查看此变体的数据表、似乎该时钟选项不可用。 我无法从网站上看到哪些变体具有此选项。 我如何知道哪些人拥有它、哪些人不知道?

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

    [引用 user="Andy Worsly89">如何知道哪些用户拥有它,哪些用户不拥有它? TivaTmC 系列 TM4C 微控制器之间有以下不同之处 :

    [引用用户="Andy Worsley89"]

    我使用了以下驱动程序函数:

       TimerClockSourceSet (WTIMEer2_base、timer_clock_PIOSC);

    [/引用]TimerClockSourceSet 函数更改  GPTM 时钟配置寄存器(GPTMCC)中的 ALTCLK 位、偏移量0xFC8寄存器(仅存在于 TM4C129器件中)。 虽然 TIMER_CLOCK _PIOSC 常数被记录为选择 精确内部振荡 器、但它实际上选择了备用时钟源。  当备用时钟源默认为 PIOSC 时、 可通过 SysCtlAltClkConfig 将备用时钟源更改为 PIOSC、 RTCOSC 或 LFIOSC。