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.

[参考译文] 编译器/TMS320F28027:用于对太阳能实验套件中的值求平均值的代码

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/588860/compiler-tms320f28027-code-used-to-average-values-in-the-solar-experiment-kit

器件型号:TMS320F28027
Thread 中讨论的其他器件:controlSUITE

工具/软件:TI C/C++编译器

套件中使用了以下代码。  它是平均8个数字。  我对使用的常数有疑问、并且为什么移位是15。  我理解这些是非常基本的问题。  

   //箱车平均值-将原始样本输入箱车数组中
   //--------------------------------------------------

    uint32   HistPtr、temp_scratch;        //这里的 Temp 意味着临时的
   Int16   Gui_Vout;                          // Q9
   int16    K_Vout;                           //Q15
    k_Vout=17050;

   temp_scrate=0;
   对于(i=0;i<8;i++)   temp_scratch = temp_scratch + Hist_Vout[i];
   Gui_Vout =((long) temp_scratch *(long) K_Vout)>> 15;

"for loop"将数组 Hist_Vout 中的8个值相加。  什么是函数 "(long) K_Vout)"?  这里是如何使用 IQ 数学的?  为什么换档15?

我在 Mac 上使用 Xcode 运行代码、以更好地了解代码的工作原理、但无法忍受"K_Vout"和 SHIFT 15。  "(long)是否因乘法而被使用?

任何帮助都是非常有价值的。

谢谢

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

    请参阅 C:\ti\controlSUITE\development_kits\SolarExplorer_v1.1\~SolarExplorer-HWdevPkg\R5\Macros \SynchBuckBoost-DCDC-PanelEMU-LV

    查看此文件夹中的 xls 文件、  

    所有这些都被解释为 K_Vout 取自 xls 文件中显示的 kV 值、  

    当您进行算术和移位时,您将得到一个 Q8格式的 valye,它将代表真实值,

    事后看来,我同意所有这些都是很难理解的。 但我们有一些传统的16位处理器代码。  

    我们不再使用这种方法。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的输入。 我对这种方式变得越来越"聪明"、但还有很长的路要走。 我找到了 xls 文件。 更改此格式以使用 Q-Math 格式有多困难、还有什么其他优势可以使代码更易于阅读? 我的计划是为200W 重新设计功率级、并使用 LaunchPad XL F28027作为控制器。 您是否看到此类设计有任何问题?

    我没有找到"SolarExplorer_v1.1"。 我使用的是"SolarExplorer_v1.0"。 将 CCSv7下载到我的 PC 后、我查找了 v1.1、但它不在 development _kit 目录中。 此外、我已将 CCS7加载到 Mac。 我在以太网关断负载中未找到"SolarExplorer_v1.1"。 v1.1中所需的更改。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Roger、

    对于您所看到的内容、您可能不需要 v1.1、

    我认为这是您需要做出的决定,上面的代码确实使用 Q 格式,但您可以使用 IQmath 库使代码更具可读性。