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/MSP430FR5994:静态定义的浮点阵列中出错

Guru**** 2577385 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/610511/ccs-msp430fr5994-error-in-statically-defined-float-array

器件型号:MSP430FR5994

工具/软件:Code Composer Studio

我知道有人建议避免使用浮点值,但我们将一些代码移植为 POC。。。

您能帮助我了解以下代码为什么会产生错误的结果吗?

float testArray1[]={0.0、1.0、2.0、1.22、4.0、 -1.802299、6.0、7.1234、8.0、9.0、 10.0、-11.9876、12.0、13.0、14.0、 15.0、16.0、
17.0、18.0、19.0、20.0、21.0、 22.0、23.0、24.0、9999.0};

float * fvalue =(float *) 0x10000;//强制创建"far"指针

void test()

{  

(笑声)

for (i=0;<NUMBER_TEST_ELEMENTS; i++)

uartA0IntValue ("["、i);
uartA0FloatValue ("]:"、testArray1[i]);

(笑声)

产生以下结果:

[0]:0.0 [1]:1.0 [2]:2.0 [3]:1.22000 [4]:4.0    [5]:-1.32767    [6]:6.0 [7]:7.12340 [8]:8.0 [9]:9.0 [10]:10.0    [11]:-11.32767   [12]:12.0 [13]:13.0 [20.0 [20.0][21:21.0][20.0][20.0][20.0][21:21.0][18.0][20.0][20.0][20.0][20.0][20.0][20.0][20.0][20.0]:18.0][20.0][20.0[20.2][20.0]:19][18.0[20.0][20.0]:19][20.0[18.0[20.0][20.0[20.0]:19]:21.0[18.0[20.0[20.0]

[5]应为:  -1.802299 、而是 -1.32767   

[11]应为  :-11.9876 、而是: -11.32767

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

    您尚未显示 uartA0FloatValue 的代码。 它是如何工作的?

    我的调试器显示的阵列正好正常。  

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

    您好、Bruce、

    抱歉-开发人员在示例中发现了问题:但更大的问题是将静态数据和代码加载到设备的最佳/推荐方法。 当前正在定义包含数据的+40K 静态数组。 然后、开发人员将有多个数据结构指向该数据块-基于偏移。

    我们将以无线方式更新该静态数据、

    如果有任何想法/建议、我们将不胜感激。