请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430F5528 工具/软件:TI C/C++编译器
工具/软件: Code Composer Studio
我正在设备中使用MSP430进行光测量。 我进行了20次测量并将其存储在阵列中。 我想计算测量值的标准偏差,但sqrt函数存在问题。 我包括math.h,在该函数中调用sqrt:
双标准偏差(int average,int measurements [],int positions){//kg 1/8/2017计算数据集的标准偏差 双偏差= 0; int i = 0; for (i = 0;i <= positions;i++){ measurements [i]= measurements [i]- average; measurements[i]= measurements [i]* measurements [i];int i = 0; + deviation) 偏差= sqrt (偏差); 返回偏差; }
#include <mathing.h>位于我的.c文件的标题。
我使用的是CCS v 5.5 编译器4.1 t.11,输出格式为eabi。 优化级别设置为0。 当我注释包括sqrt的行时,所有内容都按预期编译和工作。 包括sqrt时,调试模式将自动运行,当我尝试暂停它时,我收到错误。 断开调试器时,设备顶部的输入和输出工作正常。
有几个奇怪的地方是sqrt文本是紫色的,当我查找声明时,有两个选项:从编译器4.1 9,和从4.2 1
我测试过的内容:
- 注释掉测量值[]*测量 值[],以确保该值不会变得过大,与上述故障相同
- 用sqrt注释掉该行,设备按预期工作
- 已将sqrt函数内的变量替换为4,与上述相同的故障
- 将测量值[]数组的所有位置设置为1,与上述故障相同