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.

[参考译文] 1毫秒无中断定时器配置。

Guru**** 2601915 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/642610/timer-configuration-for-1msec-without-interrupt

大家好、

我使用的是 VISION SDK 2.12.3和 TDA2EX 硬件。 我想将 GP Timer2配置为不带中断的1ms 计时器。20Mhz 系统时钟用于时间节拍。

我已将定时器配置为自动重新加载模式、无仿真模式,初始计数为 0xFFFFFF1DFU,重新加载计数值为0xFFFFFF1DFU 。  

当我在 CCS 7.1.0.00016中对其进行调试时 ,计时器在 TCLR 计时器的 ST 位设为1时启动,但 计时器不会定期递增(有时递增有时递减),并且无法获得0xFFFFFFFF 值。

请帮助我解决此问题。

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

    我已将您的问题转交给一位专家征求意见。

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

    现在,我已经尝试将定时器2用作一次性定时器,在无仿真模式下,初始计数为0xFFFFFF1DFU。 我将持续监视 TCLR 寄存器的 ST 位、并且每当重叠后该位变为零时、我将再次将计时器初始值重新加载到0xFFFFFF1DFU。 用于该20MHz 的系统时钟。 但是、这样我就可以实现2.75ms 的最短计时器持续时间。 我如何在此模式下获得1毫秒的时间、是否有人能提供同样的帮助?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ashish、您好!

    TDA2Ex TRM 的"通用定时器"一章中的"1ms 节拍生成(仅 Timer1、TIMER2和 TIMER10)"部分详细介绍了如何生成1ms 节拍。 请参阅。 谢谢

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

    感谢 Rishabh 的回复、

    我在 TRM 手册中已经介绍过、我们必须配置 TPIR、TNIR 和 TLDR 寄存器、为此、我使用的是 Vision SDK 12.2.3代码、但代码中的 TPIR 和 TDIR 寄存器未配置。  

    请提供您对同一内容的反馈。

    请向您提供建议,说明我们如何将计时器配置为一次性计时器,而无需中断。

    谢谢、此致、

    Ashish   

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

    VSDK alreday 已为每个内核配置了此配置、例如、对于 DSP1、请参阅-\vision_sdk\src\main_app\tda2ex\dsp1\Dsp1.cfg
    它使用 BIOS API 进行配置。
    一个计时器用于 TimestampProvider、另一个计时器用于 BIOS 时钟节拍

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

    下面提到了我们为计时器完成的配置:
    1)将定时器配置为1msec,一次性定时器,自由运行仿真定时器,计数值为0xFFFFFF1E0。 计时器以20MHz 时钟频率工作。
    2) 2)我们持续监控 TCLR reg 的 ST 位、因为当发生溢出时、计时器将停止、ST 将变为零。
    一旦发生过流、我们将再次初始化计数值并声明计时器。
    在我介绍 TRM 计时器模块时、我在自动重新加载模式下可以监控的任何位是否溢出、而不启用任何中断。

    我们需要配置计时器:
    1) 1)计时器需要配置为自动重新加载计时器、因为我们的引导加载程序调度程序正在处理轮询方法、因此所有中断都被禁用。
    2) 2)我们需要一个位、该位可以在没有任何中断使能的情况下监控计时器的溢出。

    请帮助我们实现同样的效果。

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

    如果 CPU 端未启用特定中断、任何 CPU 都不会接收中断。
    您可以启用定时器中断并轮询定时器溢出中断位。

    此致、
    Rishabh