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.

[参考译文] 编译器/CCStudio-MSP:如何以十六进制指定浮点常量?

Guru**** 2609955 points
Other Parts Discussed in Thread: MSP430F5438A

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/639800/compiler-ccstudio-msp-how-to-specify-floating-point-constants-in-hex

部件号:CCStudio-MSP
主题中讨论的其他部件:MSP430F5438A

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

我尝试在闪存中指定单精度浮点NaN默认值,例如,const浮点值= 0x7FA0万。 编译器将十六进制值视为整数,并将其转换为浮动的巨大浮点值。 如何告知编译器按现在的方式使用十六进制值?

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

    您使用哪个CPU系列?

    -George

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

    使用 此论坛帖子中详细介绍的编译器内部函数

    谢谢,此致,

    -George

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试了两种
    const float value =__u32_bits_a_F32(0x7FA0万);

    浮点值=__u32_bits_a_F32(0x7FA0万);

    但是编译器给我这个错误:在常量表达式中不允许#60函数调用。
    是否有其他方法可用?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您使用的是哪个版本的TI MSP430编译器? (这与CCS版本不同)。
    如果它是支持C99的版本,则可以使用C99十六进制浮点常量(cq.v.)。
    如果它不支持C99,则需要较新才能支持内在_u32_bits_a_F32。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我正在使用TI-CGT-MSP430_MSP4S.6.LTS 16.9。
    请举例说明如何使用C99十六进制浮点符号定义NaN值。 我对此并不熟悉。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    哦,如果您没有启用C99模式,您只需使用"NA"宏:
    \#include <mathing.h>
    float nan = NaN;
    浮动INF =无穷大;
    浮点PI = 0x1.921fb6p+1;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何启用C99模式?