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.

采用28335进行FPU32高精度计算出现\src\atolQN等无法计算的问题

Other Parts Discussed in Thread: CONTROLSUITE

       (1)芯片:28335.
       (2)软件版本:CCS4
       (3)测试程序:C:\ti\controlSUITE\libs\math\IQmath\v160\examples\C\projects 中的28335_IQsampleC。
       (3)目的:想进行IQN高精度浮点运算,如atoIQN()函数。
       (4)测试出现的问题:
                 此时,编译通过,但无法进行atoIQN()函数计算。软件提示:Source not foud (locate the Source File); 0$...\src\atoIQN.asm 的问题。
请问如何解决呢?
  • t提示没有源代码不代表运算结果错误,你检查计算结果了没有?

  • 您好!

         我的目的是测试28335的IQN三角函数的精度,因为我们工业控制需要精确到小数点后第8~9位。 

    (1)第一步,在28335_IQsampleC中修改精度:

              #define GLOBAL_Q    28

             long GlobalQ = GLOBAL_Q;

    (2)第二步,定义变量和常量:

             #define PI              3.14159265358979

              _iq tempX, tempY, tempM;

    (3)第三步,main函数中设置检测函数:

         tempX=_IQ(PI);
         tempY=_IQsin(_IQ(PI)/6);
         tempM=_IQsin(tempX/4);

    (4)第四步,设置断点,用Q-Value(28)格式进行查看。计算结果如下:

    tempX=3.141 592 741(理论精确值应该是tempX=PI=3.141 592 653 589 79,所以误差为 0.000 000 887 9);

    tempY=0.500 000 011 2(理论精确值应该是tempY=0.5,所以误差为 0.000 000 0112);

    tempM=0.707 106 795 2.(理论精确值应该是tempM=0.707 106 781 186 547,所以误差为 0.000 000 014);

    (5)第五步,与IQmath手册中的精度进行比较。

    手册中指出,IQ28的取值范围为:-8~8,误差为0.000 000 004。 与计算结果相差很大。

    (6)第六步,得出结论:手册值和实际测试值之间误差极大。所以我怀疑程序是不是存在问题等。