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.

[参考译文] TMS320F280049C:CLAASIN() 函数提供的值错误

Guru**** 2414610 points
Other Parts Discussed in Thread: TMS320F280049C, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1532869/tms320f280049c-wrong-values-provided-by-claasin-function

器件型号:TMS320F280049C
主题: C2000WARE 中讨论的其他器件

工具/软件:

下午好、

在我们的工程中、我们将 TMS320F280049C 微控制器与  C2000 Ware 5_04_0_0 和 CLAmath 库配合使用。  

在代码的某个点(在.cla 文件中实现),我们使用 claasin () 函数计算浮点数的反正弦,但在调试过程中,我们注意到,如果浮点数接近 1 值,函数不返回等于 pI/2 的值 (1.570796...)。 得到的值较低。

只是为了验证,我们也尝试提供一个等于 1 的常量浮点作为 CLAASIN() 函数 的参数,但我们仍然得到的值低于 pI/2(1.570796...)。 如果我们 使用 CLAASIN_INLINE () 函数,结果也一样。

您能就这个主题为我们提供帮助吗?

提前感谢您、

Marco R. de Cesero

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

    您好、Marco、

    您能否提供一些您正在使用的输入值以及函数返回的值与您预期返回的值的示例?

    此致、

    Delaney

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

    你好、Woodward 夫人、

    正如我的同事 Marco  在我们的工程中所说、我们将 TMS320F280049C 微控制器与  C2000 Ware 5_04_0_0 和 CLAmath 库配合使用。  

    我们希望在 CLA 中使用这些函数。

    我们正在使用函数  CLAsin 和 CLAasin、但预期返回值不正确。

    为了向您展示我们获得的行为、我创建了以下三个测试变量 (test_variable_Sin、 test_variable_asin、 pi_div_two_test)、它们将函数的结果存储在其限值条件下:

    其中、在 Clamath.h 库中定义了 CLAMATH_PI_DIV_TWE

    这里是结果

    根据这些结论、您可以看到 TEST_VENTARY_ASIN 应等于 CLAMATH_PI_DIV_TWE 。 但尺寸更小。

    您的团队能否向我们建议如何解决这个问题?

    我们需要使用完整范围的 CLAASIN 函数。

    提前感谢您的支持!

    此致、

    瓦伦蒂娜 Zito

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

    尊敬的 Valentina:

    感谢您 分享此信息。 我将对此进行研究、并在下周回复您。  

    此致、

    Delaney

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

    尊敬的 Valentina:

    很抱歉我的回复太迟了。

    似乎精度略有下降。 您是否尝试过从 C2000ware 中为 F28004x 运行 cla_asin 示例并比较精度?

    一个后续问题是您使用 ROM 存储器中的 CLA 数学表、正确吗? 为此、您可以将 --define=cla_math_tables_in_rom=1 添加到工程属性中、并使用提供的 f28004x_cla_c_lnk.cmd 文件(或将 cla_math_tables_in_rom 部分添加到您的项目属性中)。  

    如果未启用此功能、则我假设您正在尝试将表加载到 LSRAM 中以进行访问。 如果操作不正确、这可能会导致问题、因此如果您还没有使用 ROM 表、我建议改用 ROM 表。  

    此致、

    Delaney