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:与 TI RTOS 中定时器周期的最大值相关的问题

Guru**** 2553900 points
Other Parts Discussed in Thread: TM4C1294NCPDT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/998667/tm4c1294ncpdt-issues-related-to-maximum-value-for-the-timer-period-in-ti-rtos

器件型号:TM4C1294NCPDT

您好!  

我正在使用 TI RTOS 为 TM4C1294NCPDT 编写计时器代码、用于 Tiva C 版本2.16.0.08。 我已附加模板.c 文件。

我必须创建一个计时器、该计时器能够在可变周期提供中断、并且在数组中声明时间周期。  

要在运行时更改时间段、我将使用以下代码:

Timer_stop(timerHandle);
Timer_setPeriodMicroSecs(timerHandle, (UInt32) timePeriodUS);
Timer_start(timerHandle);

根据这个 文档 链接, Timer_setPeriodMicroSecs()将定时器句柄和时间周期作为输入,而时间周期是一个 uint32变量。

因此、该函数应该能够取值从0到 16、777、216、但我在35、000、000的值处遇到了计时器溢出问题。

那么、是否有人可以就如何调试这个问题提出任何想法?

e2e.ti.com/.../clock_5F00_example.c

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

    您好、Shaunak、

    我在这里没有完全关注。

    您说、您了解计时器将能够获取高达16、777、216的值。 但是、您说您会看到35、000、000的溢出。 这是预料之中的吗? 35、000、000的值超出了 TM4C129x 计时器可以处理的范围、这些计时器具有16位宽和8位预分频、因此总共24位。

    我想您只是没有意识到您的输入值会溢出。

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

    您好、Ralph、

    很抱歉, 我在问题中犯了错误。

    根据函数 文档 Timer_setPeriodMicroSecs() 函数应该能够在 定时器周期内取0到4、294、967、296 (uint32)的值。 我仍然面临着35,000,000的溢出 

    [引用 userid="189615" URL"~/support/microcontrollers/other/f/other-microcontrollers-forum/998667/tm4c1294ncpdt-issues-related-to-maximum-value-for-the-timer-period-in-ti-rtos/3690541 #3690541"]超过 TM4C129x 计时器可处理的35、000、000的值、TM4C129x 计时器具有8位预分频16位宽、因此总共24位。

    这解释了出现溢出的原因。 那么 、函数定义是否应该发生变化

    谢谢、

    Shaunak

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

    您好、Shaunak、

    [引用 userid="428175" URL"~/support/microcontrollers/other/f/other-microcontrollers-forum/998667/tm4c1294ncpdt-issues-related-to-maximum-value-for-the-timer-period-in-ti-rtos/3690574 #3690574)]这说明了溢出的原因。 那么 、函数定义是否应该发生更改?[/quot]

    我不认为是这样、因为它似乎是 Arm MCU 的通用文档、我看不到任何特定于 TM4C 硬件的内容。 这里的限制是由于 MCU 上的硬件限制。 RTOS 可以支持更多、但硬件无法支持。 了解任何硬件限制也很重要。 虽然也许可以添加这种注释、即最大值取决于所使用的硬件计时器功能-但它无法定义特定的最大值、您需要根据目标器件对其进行调查。