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 格式轉換

Other Parts Discussed in Thread: CONTROLSUITE

我的IQ格式是使用IQ20

#ifndef GLOBAL_Q
#define GLOBAL_Q 20
#endif

請問當我宣告某個變數

_iq x = IQ(0.5);

IQ(0.5) 轉換至10進制為多少? 以及其運算函數的過程?

  • :\ti\controlSUITE\libs\math\IQmath\v160\doc
    请安装controlsuite,并参考以上文档。
    建议您做仿真,更容易帮助您理解。
  • CCS单步调试一下不就知道了吗?至于运算过程,TI都封装好了,看不到的。
  • 請問TI沒有文獻描述?以方便查詢嗎? 不然只要每用一個IQ變數就要單步執行才能知道結果,不就造成困擾了!
  • 在這份文件 "IQmath_Quickstart.pdf" 其中一個範例
    #include<IQmathLib.h>
    #define PI 3.14159
    _iq input, sin_out;
    void main(void )
    {
    /* 0.25 x PI radians represented in Q29 format */
    input=_IQ29(0.25*PI);
    sin_out =_IQ29sin(input);
    }
    意思是否為:
    使用IQ29格式將(10進制的0.25)乘(10進制的定義巨集PI)
    將得到的結果丟到 iq 變數 input。
    那麼請問現在這個input變數為多少?
    以及這個0.25是否真的為我所認為的10進制的0.25

    ==========分開方便看而已============

    如果我不算浮點數將程式更改為及宣告另一個整數變數int input_int

    #include<IQmathLib.h>
    #define PI 3
    _iq input, sin_out;
    int input_int
    void main(void )
    {
    /* 5 x PI radians represented in Q29 format */
    input=_IQ29(5*PI);
    input_int = 5*PI;
    sin_out =_IQ29sin(input);
    }

    請問這兩個結果有什麼不同嗎?
    input=_IQ29(5*PI);
    input_int = 5*PI;

    5及PI 各代表的是我們實際上所看到的10進制的5和3嗎?