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.

IQMath Operation on TMS320F2812

Other Parts Discussed in Thread: TMS320F2812

Hi,

Have been struggling to get IQMath functions executed on TMS320F2812 DSP. When we call IQn function by passing a const (Ex. 0.5), then we get correct results. But if we call the same funciton IQn by passing a float variable, then we dont get the right result. Below find snippet of code and in comments the result observed. Can some one point me to the problem source for this behavior. Below we have listed the results for 0.56432145L & 1.0323232 .

//Version of CCS3.3 Platinum
//Version of rts2800_ml.lib: Tried both options: Lib version 5.2 from CCS4 & rts lib form CCS3.3 Platinum installation
//IQMath Lib Version: Tried V1.5a and Lib V1.4
 float FltVar;
 long LngVar;
 FltVar = 0.56432145L;

 LngVar = _IQ1(FltVar);        //    result =  0x00000000
 LngVar = _IQ1(0.56432145L);    //    result =  0x00000001
 
 LngVar = _IQ2(FltVar);  //    result =  0x00000000
 LngVar = _IQ2(0.56432145L);     //    result =  0x00000002
 
 LngVar = _IQ3(FltVar);        //    result =  0x7FFFFFFF
 LngVar = _IQ3(0.56432145L);     //    result =  0x00000004
 
 LngVar = _IQ4(FltVar);        //    result =  0x7FFFFFFF
 LngVar = _IQ4(0.56432145L);     //    result =  0x00000009
 
 LngVar = _IQ5(FltVar);  //    result =  0x00000000
 LngVar = _IQ5(0.56432145L);     //    result =  0x00000012
 
 LngVar = _IQ6(FltVar);        //    result =  0x7FFFFFFF
 LngVar = _IQ6(0.56432145L);     //    result =  0x00000024
 
 LngVar = _IQ7(FltVar);        //    result =  0x80000000
 LngVar = _IQ7(0.56432145L);     //    result =  0x00000048
 
 LngVar = _IQ8(FltVar);  //    result =  0x00000000
 LngVar = _IQ8(0.56432145L);     //    result =  0x00000090
 
 LngVar = _IQ9(FltVar);        //    result =  0x00000000
 LngVar = _IQ9(0.56432145L);     //    result =  0x00000120
 
 LngVar = _IQ10(FltVar);  //    result =  0x00000000
 LngVar = _IQ10(0.56432145L);    //    result =  0x00000241
 
 LngVar = _IQ11(FltVar);  //    result =  0x00000000
 LngVar = _IQ11(0.56432145L);    //    result =  0x00000483
 
 LngVar = _IQ12(FltVar);       //    result =  0x80000000
 LngVar = _IQ12(0.56432145L);     //    result =  0x00000907
 
 LngVar = _IQ13(FltVar);  //    result =  0x00000000
 LngVar = _IQ13(0.56432145L);    //    result =  0x0000120E
 
 LngVar = _IQ14(FltVar);  //    result =  0x00000000
 LngVar = _IQ14(0.56432145L);    //    result =  0x0000241D
 
 LngVar = _IQ15(FltVar);       //    result =  0x7FFFFFFF
 LngVar = _IQ15(0.56432145L);    //    result =  0x0000483B
 
 LngVar = _IQ16(FltVar);       //    result =  0x7FFFFFFF
 LngVar = _IQ16(0.56432145L);   //    result =  0x00009077

 LngVar = _IQ17(FltVar);  //    result =  0x00000000
 LngVar = _IQ17(0.56432145L);   //    result =  0x000120EE
 
 LngVar = _IQ18(FltVar);       //    result =  0x80000000
 LngVar = _IQ18(0.56432145L);    //    result =  0x000241DD
 
 LngVar = _IQ19(FltVar);       //    result =  0x80000000
 LngVar = _IQ19(0.56432145L);    //    result =  0x000483BA
 
 LngVar = _IQ20(FltVar);       //    result =  0x7FFFFFFF
 LngVar = _IQ20(0.56432145L);    //    result =  0x00090775
 
 LngVar = _IQ21(FltVar);  //    result =  0x00000000
 LngVar = _IQ21(0.56432145L);  //    result =  0x00120EEB
 
 LngVar = _IQ22(FltVar);  //    result =  0x80000000
 LngVar = _IQ22(0.56432145L);  //    result =  0x00241DD7
 
 LngVar = _IQ23(FltVar);  //    result =  0x7FFFFFFF
 LngVar = _IQ23(0.56432145L);  //    result =  0x00483BAF
 
 LngVar = _IQ24(FltVar);  //    result =  0x80000000
 LngVar = _IQ24(0.56432145L);  //    result =  0x0090775E
 
 LngVar = _IQ25(FltVar);  //    result =  0x00000000
 LngVar = _IQ25(0.56432145L);  //    result =  0x0120EEBD
 
 LngVar = _IQ26(FltVar);  //    result =  0x00000000
 LngVar = _IQ26(0.56432145L);  //    result =  0x0241DD7B
 
 LngVar = _IQ27(FltVar);  //    result =  0x00000000
 LngVar = _IQ27(0.56432145L);  //    result =  0x0483BAF6
 
 LngVar = _IQ28(FltVar);  //    result =  0x00000000
 LngVar = _IQ28(0.56432145L);  //    result =  0x090775ED
 
 LngVar = _IQ29(FltVar);  //    result =  0x80000000
 LngVar = _IQ29(0.56432145L);  //    result =  0x120EEBDB
 
 LngVar = _IQ30(FltVar);  //    result =  0x00000000
 LngVar = _IQ30(0.56432145L);  //    result =  0x241DD7B7


FltVar = 1.0323232;

 LngVar = _IQ1(FltVar);       //    result =  0x00000000
 LngVar = _IQ1(1.0323232);    //    result =  0x00000002
 
 LngVar = _IQ2(FltVar); //    result =  0x00000000
 LngVar = _IQ2(1.0323232);     //    result =  0x00000004
 
 LngVar = _IQ3(FltVar);       //    result =  0x7FFFFFFF
 LngVar = _IQ3(1.0323232);     //    result =  0x00000008
 
 LngVar = _IQ4(FltVar);       //    result =  0x7FFFFFFF
 LngVar = _IQ4(1.0323232);     //    result =  0x00000010
 
 LngVar = _IQ5(FltVar); //    result =  0x00000000
 LngVar = _IQ5(1.0323232);     //    result =  0x00000021
 
 LngVar = _IQ6(FltVar);       //    result =  0x7FFFFFFF
 LngVar = _IQ6(1.0323232);     //    result =  0x00000042
 
 LngVar = _IQ7(FltVar);       //    result =  0x80000000
 LngVar = _IQ7(1.0323232);     //    result =  0x00000084

 
 LngVar = _IQ8(FltVar); //    result =  0x00000000
 LngVar = _IQ8(1.0323232);     //    result =  0x00000108
 
 LngVar = _IQ9(FltVar);       //    result =  0x00000000
 LngVar = _IQ9(1.0323232);     //    result =  0x00000210
 
 LngVar = _IQ10(FltVar); //    result =  0x00000000
 LngVar = _IQ10(1.0323232);    //    result =  0x00000421
 
 LngVar = _IQ11(FltVar); //    result =  0x00000000
 LngVar = _IQ11(1.0323232);    //    result =  0x00000842
 
 LngVar = _IQ12(FltVar);      //    result =  0x80000000
 LngVar = _IQ12(1.0323232);    //    result =  0x00001084
 
 LngVar = _IQ13(FltVar); //    result =  0x00000000
 LngVar = _IQ13(1.0323232);    //    result =  0x00002108
 
 LngVar = _IQ14(FltVar); //    result =  0x00000000
 LngVar = _IQ14(1.0323232);    //    result =  0x00004211
 
 LngVar = _IQ15(FltVar);      //    result =  0x7FFFFFFF
 LngVar = _IQ15(1.0323232);    //    result =  0x00008423
 
 LngVar = _IQ16(FltVar);      //    result =  0x7FFFFFFF
 LngVar = _IQ16(1.0323232);    //    result =  0x00010846
 
 LngVar = _IQ17(FltVar); //    result =  0x00000000
 LngVar = _IQ17(1.0323232);    //    result =  0x0002108C
 
 LngVar = _IQ18(FltVar);      //    result =  0x80000000
 LngVar = _IQ18(1.0323232);    //    result =  0x00042119
 
 LngVar = _IQ19(FltVar);      //    result =  0x80000000
 LngVar = _IQ19(1.0323232);    //    result =  0x00084232
 
 LngVar = _IQ20(FltVar);      //    result =  0x7FFFFFFF
 LngVar = _IQ20(1.0323232);    //    result =  0x00108465
 
 LngVar = _IQ21(FltVar); //    result =  0x00000000
 LngVar = _IQ21(1.0323232); //    result =  0x002108CA
 
 LngVar = _IQ22(FltVar); //    result =  0x80000000
 LngVar = _IQ22(1.0323232); //    result =  0x00421195
 
 LngVar = _IQ23(FltVar); //    result =  0x7FFFFFFF
 LngVar = _IQ23(1.0323232); //    result =  0x0084232B
 
 LngVar = _IQ24(FltVar); //    result = 0x80000000
 LngVar = _IQ24(1.0323232); //    result = 0x01084656
 
 LngVar = _IQ25(FltVar); //    result = 0x00000000
 LngVar = _IQ25(1.0323232); //    result = 0x02108CAC
 
 LngVar = _IQ26(FltVar); //    result = 0x00000000
 LngVar = _IQ26(1.0323232); //    result = 0x04211958
 
 LngVar = _IQ27(FltVar); //    result = 0x00000000
 LngVar = _IQ27(1.0323232); //    result = 0x084232B0
 
 LngVar = _IQ28(FltVar); //    result = 0x00000000
 LngVar = _IQ28(1.0323232); //    result = 0x10846560
 
 LngVar = _IQ29(FltVar); //    result = 0x80000000
 LngVar = _IQ29(1.0323232); //    result = 0x2108CAC0
 
 LngVar = _IQ30(FltVar); //    result = 0x00000000
 LngVar = _IQ30(1.0323232); //    result = 0x42119580

 

Regards,
Subbu