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.

[参考译文] CCS/LAUNCHXL-F28069M:_IQ 数学库问题

Guru**** 2524550 points
Other Parts Discussed in Thread: LAUNCHXL-F28069M, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/674746/ccs-launchxl-f28069m-_iq-math-library-problem

器件型号:LAUNCHXL-F28069M
主题中讨论的其他器件: C2000WARE

工具/软件:Code Composer Studio

大家好

这是 Mike

在´s 后、尝试使用 LAUNCHXL-F28069M 执行一些操作时、我停止了、因为我无法解决这个问题。

有什么建议吗?

此致

Mike

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Mike:
    由于这些是警告、您可以忽略它们。 出现这些警告的原因是 IQmath 库已使用较旧版本的编译器进行编译、您用于编译代码的编译器版本较新、因此这些警告。 请放心、您的代码应按预期工作。
    有一些相关主题讨论类似警告。
    e2e.ti.com/.../237376
    e2e.ti.com/.../744231

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

    感谢您的回答。 我可以忽略它们、但在仿真中、我注意到这些指令不起作用、这´s 我为什么要寻求帮助。
    任何建议
    此致
    Mike
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mike、
    我想如果您使用新版本的工具、问题仍然存在。 我正在研究这个问题。 即时解决方案可以是使用 CCSv4和编译器 v5.0.2 (无法确定它们是否仍然在网络上可用!)。 要获得更永久性的解决方案、您需要等待一段时间、因为我更仔细地研究了这个问题。

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

    我更改了 IQmathLib.h 中的 Math _type、而不是"IQ_Math"我编写的"float_Math"似乎可以正常工作、但我注意到这种更改使我的所有变量都采用浮点类型。 这对我来说有点令人困惑、因为 IQmath、即对定义、都是以长类型完成的。 如果我更改这个值(float_Math 而不是 IQ_Math)、我是否会受到限制? 我的意思是"浮动类型"有一个范围、而"长类型"有另一个范围。

    可以向我解释一下吗?

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

    Mike、

    这是预期行为。 您可以在 IQmathLib.h 中的第3639行中查看此信息:

    //######################################################################################################################
    #else // MATH_TYPE = FLOAT_MATH
    //########################################################################################################
    //如果使用了 float_Math,则 IQmath 库函数将替换为
    //等效浮点运算:
    //============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================ 

    正确的做法是、IQ Math 定义在很长的时间内完成、但为此、您需要保持 MATH_TYPE = IQ_MATH。

    Ritvik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我有一个新问题。 在 sprc990.pdf 中、我们将讨论 IQ 数学、LAUNCHXL-F28069M。 如何在项目中链接.lib?我认为它将解决这个问题。 在该 sprc990中、我了解了表中包含的一些数学运算、其中一个运算只需将其链接到项目即可。 我的项目中包含了该文件、但我认为它讨论了构建选项。 我希望更多的人能对我们提出一些意见。
    此致
    Mike
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mike、

    您引用的表是用于计算诸如 sin/cos/atan 等基本数学函数的查找表 要使用这些表/函数、您需要包含 BootROMSymbols.lib。 您可以在以下目录中找到符号:

    {install_dir}\C2000Ware_1_00_03_00\libraries\boot_rom\f2806x\v1_1\rom_symbol_libs\IQmath\2806x_IQmath_BootromSymbols.lib

    在 sprc990.pdf 的第17页上、您可以找到 将库链接到项目的步骤。 第12页以后的内容介绍了如何使用表格。

    -Ritvik

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

    我´s 了这个问题,但我认为这不是正确的方法。

    在 IQmathlib.h 中、正如我之前告诉过的、我对"Math_type = float_Math"进行了更改、所以我想"为什么不使用 math.h?" 我是说、我将变量定义为_IQ、但在特定指令中(我想执行累加器函数、实际上我执行了) 我必须对来自缓冲区的所有数据进行平方运算、然后添加它们、因此我只使用 math.h 中的指令 pow、然后添加所有数据。

    但我认为实际上我不使用 IQmath、只是我正在优化要处理的变量、因为它们是_IQ。
    你怎么看?
    此致
    Mike
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ritvik Sadana

    还在吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mike、
    延迟的拓扑。 如果您使用 math.h、则代码将不会像 IQMath 中那样进行周期优化。 不过、如果它满足您的时间限制、您也可以使用 math.h。
    Ritvik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将´m 来自三相n´t 器的信号、我每周期采集154个样本、该信号的幅值和频率是可变的、但频率的变化´ll 超过70Hz、因此我认为这是正常的。 您认为 Ritvik 怎么样?
    此致
    Mike
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这个问题更具体地针对您的应用、我们可能很难以某种方式作出评论。 如果您对数学函数有任何疑问、请告知我们。

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

    您好 Ramesh

    为此我要道歉。

    问题是 IQmath,在一些函数中有一些问题,如_IQdiv()、IQmpy(); 因此、我决定使用数学函数、现在我的变量被声明为_IQ、我使用的是 pow 函数、它运行良好、那么问题是、如果我这么做、它会优化微积分吗?

    有人告诉我 FPU 可以解决这个问题、使我的数字为.0、例如:1.0而不是1、FPU 将自动执行该操作、我的意思是、FPU 在找到浮点数时将优化微积分。

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

    Mike、

    IQMath 和 FPU 之间的选择完全基于计算中所需的精度。 在某些情况下、IQMath 的工作效果更好、而在某些情况下、FPU 将为您提供更好的精度和更宽的范围。 您可以在此处阅读有关此内容的更多信息: IQMath 与浮点

    仅当您使用"/"而不是_IQdiv ()或"*"而不是_IQmpy 时、FPU 才会优化代码。 此外,您还需要使用代码中使用的库的_fpu32.lib 版本,并在 Properties->Build->C2000 Compiler->Processor Options->Specify floating point support->fpu32下启用浮点支持。  在此之前 、您的数字在 CPU 中被视为定点数。

    -Ritvik

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

    很棒! 我只需要在 CCS 上进行这些设置、就这样。 我将查看您与我共享的链接。

    非常感谢。

    此致  

    Mike