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:#62-D 整数运算结果超出范围警告

Guru**** 2589275 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1104608/tms320f28379d-62-d-integer-operation-result-out-of-range-warning

器件型号:TMS320F28379D

您好!

我在以下代码中收到整数运算结果超出范围警告:

此处定义了 SAMPLING_FREQ 和 CUR_LOOP_ANbwidth:

当 PWM_FREQUENCY 设置为10时、没有警告。 但是、对于我的应用、我需要 PWM_FREQUENCY 为60。 这时会出现警告。 我尝试将 SAMPLING_FREQ 和 CUR_LOOP_bandwidth 转换为 float32_t、但这不起作用。 所有 FCL_params.x 变量都是 float32_t

为什么会出现此警告? 对于 tSamp、该值应分别为0.00001667;对于 WCCD 和 wccQ、该值应分别为20943.951、该值应适合 float32t。

谢谢

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

    编译 WCCD 和 wccQ 时、输出为-1932.42859、tsamp 为 -0.000180635834

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

    对于 SAMPLING_FREQ、将 ISR_FREQ 乘以1000.0将其转换为 Hz、而不是1000即可解决问题。 我怀疑编译器会自动默认将1000分配给 int 类型而不是 float 类型、而将1000.0分配给 float