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.

[参考译文] TMS320F28379D:初始化 CPU 定时器设置

Guru**** 2540720 points
Other Parts Discussed in Thread: TMS320F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1331408/tms320f28379d-initialize-cpu-timer-settings

器件型号:TMS320F28379D

您好、TI!

我想知道此 TI 示例代码中的初始计时器中断是什么:


//将计时器周期初始化为最大值:
//
CpuTimer0Regs.PRD.all = 0xFFFFFFFF;
//
//初始化被1分频的预分频计数器(SYSCLKOUT):
//
CpuTimer0Regs.TPR.all = 0;
CpuTimer0Regs.TPrh.all = 0;

微控制器是采用200MHz 的 TMS320F28379D 芯片。 根据这些设置、我认为定时器应该使用5us 中断、但我不确定。

此外、我知道简单的方法是使用"ConfigCpuTimer (&CpuTimer0200、...);"、但它不会在该计时器的代码的任何部分中使用此函数。 只存在初始化设置。

您能帮我说明一下时间的数学计算吗?

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

    您好、Hamed、

    寄存器存储定时器周期的 SYCLK 数量、因此如果周期为100、这转换为100个 SYSCLK 周期。 对于200 MHz 器件、该值为100 *(1/PWM 200 MHz)或 500ns。   我认为您所引用的 configCPUTimer 函数以微秒为单位使用参数、并且在函数本身中、该参数将转换为 SYSCLK 的数量。 此架构没有什么独特之处、您只需从时域转换为频域(即从周期转换为秒)。

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

    您好、Omer:

    非常感谢您的帮助。

    那么、在这种情况下、计时器的周期将是(0xFFFFFFFF 200 MHz)*(1/FFFF)=(4294967295)*(200 MHz)=21.474836475 Hz。

    是这样吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那么,在这种情况下,计时器的周期将是(0xFFFFFFFFF)*(1/FFF)=(4294967295)* 200 MHz 200 MHz )=21.4748364775Hz.

    是的、正确。