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.

[参考译文] TMS320F28069F:Motorware 软件:HAL_writePwmData()的函数

Guru**** 2529560 points
Other Parts Discussed in Thread: MOTORWARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/905733/tms320f28069f-motorware-software-the-function-of-hal_writepwmdata

器件型号:TMS320F28069F

您好!

我对 用于 TMS320F2806xF 器件的 Motorware 软件有疑问。

具体而言,它位于 hal.h 文件中列出的 HAL_writePwmData()函数上

我无法理解以下分配代码:

周期=(_IQ) PWM->TBPRD;

period 的局部变量声明为_iq。

同时,对于 hal.c 文件中列出的 HAL_setupPwms()函数中指定的4kHz PWM 频率,PWM->TBPRD 的值可能为90*250/2=11,250

显然、11、250的值超出了_IQ 或 Q24数字的范围。

请告诉我哪里出错了。

感谢您的指导。

此致、

JS Yoo

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

    它只使用_IQ 来强制将 uint16_t (unsigned int)类型变量转换为 long 类型、最终结果等于_IQ0 (PWM-> TBPRD)、而不是_IQ (PWM-> TBPRD)。 _IQ 不喜欢使用_IQ() 将浮点常量或变量转换为等效的 IQ 值。  

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

    罗燕明、您好!

    感谢您的评论。

    我对 HAL_writePwmData()函数有如下更多问题。

    具体而言、它位于如下所示的分配代码上。

    值=_IQmpy (pwmData_sat_dc、周期);

    IQmpy (A、B)的函数定义为_IQmpy (A、B、global_Q)。

    此外、GLOBAL_Q 定义为24。

    因此、我假设函数 _IQmpy (pwmData_sat_dc、period)返回 Q24格式范围内的数字。

    pwmData_sat_dc 的变量值似乎介于_IQ (0.0)和_IQ (1.0)之间。

    然后、我假设 _IQmpy (pwmData_sat_dc、period)的输出可能超过 Q24格式的范围、因为 period 的变量超出 Q24格式的范围。

    我弄错了吗?

    请告诉我哪里出错了。

    感谢您的指导。

    此致、

    JS Yoo

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

    这里没有溢出。 在这个等式中、"period"将被用作_IQ、此等式等于_IQmpy (pwmData_sat_dc、_IQ ("Period"/2^24的值))、而不是_IQmpy (pwmData_sat_dc、 _IQ ("Period"的值))。