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.
在使用CLAMATH库进行计算时,CLAcos与CLAsin函数计算错误,CLAcos(0.0001f)的计算结果为+inf,CLAcos(0.1f)与CLAcos(1.0f)与CLAcos(10.0f)的计算结果为0.0;CLAsin(0.1f)与CLAsin(1.0f)的计算结果为-inf,CLAsin(0.0001f)的计算结果为+inf;而在CLA中普通的加、减、乘以及CLAsqrt,CLAdiv计算结果正确,以上结果都是在仿真器调试中在Expressions中观察到的。CLAcos.asm,CLAsin.asm,CLAsqrt.asm等asm文件是放在相同的位置。
我的CLA文件中Release Date为Feb 12, 2021;同时,我把编译器更新到版本为TI V20.2.5.LTS,目前应该都是较新版本,但在测试中还是无法得到正确的结果,我觉得更有可能是工程文件配置上的问题。
经过检查,我在Resource-Linked Resources-Path variables中,发现多了一个CLAMATH1,它的Value为${CG_TOOL_ROOT}\libraries\math\CLAmath\c28,在将它移除后三角函数的计算恢复正常。这个Linked Resource并不是我创建的,而且我也只能确定这是在我设定了正确的CLAmath后才出现的。请问这会是什么原因造成的?
CLAMATH_ROOT是我自己添加的,而CLAMATH_ROOT1是不知道何时出现的。而我在CCS中添加的CLAmath例程中有CLAMATH_ROOT,但其Value与以上的并不相同。下面是cla_cos例程中的Linked Resource。
当我单独地使用工程测试三角函数时,删除该定义后计算结果正确。但当我对该工程添加我自己编写的其他.c.h文件后,计算结果再次出现错误,出现了CLAsin(3.14159f) = +inf或CLAcos(3.14159f) = 0.0这样的结果,而且我通过删除之后添加的文件也无法复原到原来的状态。我觉得这种计算错误可能是由多种原因造成的。
我觉得这种计算错误可能是由多种原因造成的。
是的,我也是这样认为的。若是可以的话,建议您将代码移植到一个新的工程内重新编译,或者直接在TI例程上进行修改(直接修改例程中的CLAMATH_ROOT,而不是添加)