Re: [問題] 在TI DSP中使用Q format的方法?
※ 引述《ke19721972 (幽默)》之銘言:
: 我的IDE是用TI出的CCStudio
: 要用來控制DC to DC的converter
: 但在寫PI控制器的時候出現了一些問題
: 很多參數本來是用float來寫的
: 像是(float Kp = 0.7;)這樣
: 但是計算時間就會長一點
: 因為我切換頻率定在100kHz,怕會有所影響
: 所以想請教大家該怎麼定義Q format好進行小數點運算?
: 手邊其實是有書上有寫PI控制器的寫法(by Q15)
: 可惜他是用組語所以我看不懂QQ
: 是不是還要另外再找標頭檔來放呢??
: 先感謝各位~~~
一個東西是什麼 是看你從甚麼角度去看他
DSP大部分的數值都是以16 bits來定義
一般以Q15 form最多
其定義是最高的第15 bit是整數 不是1就是0
第14 bit~第0 bit 為小數
EX: 當有一個16 bits的數值是
1,010 1010 1010 1010
對應到是數字是
1*(1/2)^0 + 0*(1/2)^1 + 1*(1/2)^2 + 1*(1/2)^3 ......+ 0*(1/2)^15
那現在的問題就是 如何把所有的數值都轉為Q15 form?
以DSP數值都是16 bits來看 何數值是1?
2進制來看: 1000 0000 0000 0000
16進制來看: 0x8000
所以把所有讀到的數字 都化成16進制來看 就是把他相乘 讓他等比於1
當然如果整數部份比較大 你可以採用q12 q13 form 都可以
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.84.125.25
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):