色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FOC之定點小數運算

fcsde-sh ? 來源:未知 ? 作者:胡薇 ? 2018-07-11 15:10 ? 次閱讀

許多MCU 芯片只支持整數運算,如果要在這些芯片上進行小數運算,定點運算應該是最佳選擇了;此外即使芯片支持浮點數,定點小數運算也是最佳的速度選擇。所謂定點小數運算,就是將小數點位置固定,用整數的方式來進行運算;由于小數點的位置是固定的,所以就沒有必要儲存它。既然沒有儲存小數點的位置,那么計算機當然就不知道小數點的位置,所以這個小數點的位置是我們寫程序的人自己需要牢記的。那么,如何將小數表示成整數呢?

處理器整數以二進制形式存儲,首先要了解如何將小數轉換成二進制!假定MCU 是16位,因最高位是符號位,那么有效位就只有15位(不考慮符號則16位)。即小數點之后可以有0~15 位。我們把小數點之后有n位叫做Qn,例如小數點之后有12位叫做Q12 格式的定點小數,而Q0就是我們所說的整數:

以Q12 格式為例,Q12 的正數的最大值是0111.111111111111,第一個0是符號位,后面的數都是1,那么這個數是十進制的多少呢? 請看下面的運算:

對于Qn格式的定點小數的表達的數值就它的整數值除以2^Qn。在計算機中還是以整數來運算,我們把它想象成實際所表達的值的時候,進行這個運算。反過來把一個實際所要表達的值x 轉換Qn 型的定點小數的時候,就是x*(2^ Qn)了。例如0.2 的Q12 型定點小數為:0.2*(2^12) =819.2,由于這個數要用整數儲存, 所以是819 即0x0333。因為舍棄了小數部分,所以0x0333 不是精確的0.2,實際上它是819/2^12=0.199951171875,非常接近0.2 了。

因此我們可以歸納出一個公式,假定x 表示實際的小數, q表示這小數在MCU 中的Qn 型定點小數,則有:

由以上公式我們可以很快得出定點小數運算法則:

加減法和一般的整數運算相同,而乘除法的時候,為了使得結果的小數點位不移動,對數值進行了移動(乘除2^Qn實際是將被乘除數左或右移動n位):

q3 = q1 * q2 / (2^Qn) ---> q3 = (q1 * q2 )>>Qn

c語言來寫定點小數的乘法就是:

short q1,q2,q3;

....

q3=((long q1) * (long q2)) >> n;

由于/ 2^Qn 和* 2^Qn可以簡單的用移位來計算,所以定點小數的運算比浮點小數要快得多。下面我們用一個例子來驗證一下上面的公式:用Q12來計算2.1 * 2.2,先把2.1, 2.2轉換為Q12 定點小數:

2.1 * 2^12 = 8601.6 = 8602

2.2 * 2^12 = 9011.2 = 9011

(8602 * 9011) >> 12 = 18923

18923 的實際值是18923/(2^12) = 4.619873046875 和實際的結果4.62相差0.000126953125,對于一般的計算已經足夠精確了。好了,話不投機半句多,說了這么多,最終還是要用實例代碼來形象的指出如何實現定點運算。

MCU 實例

用碩呈16BIT-MCU 實現一組數據乘以0.492,這組數據是:

100*0.492=49.2

105*0.492=51.66

147*0.492=72.324

350*0.492=172.2

860*0.492=423.12

458*0.492=225.336

步驟一,先確定小數,0.492屬于小于“1”的小數;且乘數與被乘數符號都為正,為了提高精度,可以考慮使用Q16 格式;因此將0.492轉換成定點小數有:

步驟二,編寫如下代碼:

在地址0x00F0 處,設定運算為無符號乘以無符號運算。

地址0x00F1 處,將Q16 小數送入MX 寄存器

地址0x00f4~0x00f8 處,利用循環計算出_MUL_表格中列出的數據,并將結果存到I0指向的緩沖中(MR1 是計算結果的整數位,MR0 是計算結果的小數低位)。

計算結果請查閱以下表格:

如果運算不需要小數部分(即運算結果取整),則"MCU 運算結果"中的數值均需要向右移動16位去掉小數部分;在代碼中,用戶可以直接取MR1的數字做為整數結果(假如不考慮四舍五入)。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17123

    瀏覽量

    350986
  • FOC
    FOC
    +關注

    關注

    20

    文章

    322

    瀏覽量

    42798

原文標題:一步步解剖FOC之定點小數運算!

文章出處:【微信號:fcsde-sh,微信公眾號:fcsde-sh】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于牛頓迭代法的FPGA定點小數計算

    倒數算法的HDL實現,只需要進行一次到兩次迭代便可獲得相對精確的結果。在一些實時圖像處理場合中,對算法的運算速度和Latency要求較高,因此可以采用定點小數適當地降低精度以獲得更高的性能。
    發表于 07-18 07:33

    【每日一知識點】如何在沒有浮點運算的單片機中,更高效快速的進行小數運算

    許多 MCU 芯片只支持整數運算,如果要在這些芯片上進行小數運算,那么該如何高效滴、快速滴、計算呢? 定點小數
    發表于 03-16 11:02

    定點dsp浮點運算教程

    定點dsp浮點運算的多媒體視頻教程:
    發表于 01-24 09:14 ?50次下載
    <b class='flag-5'>定點</b>dsp浮點<b class='flag-5'>運算</b>教程

    DSP芯片的定點運算

    DSP芯片的定點運算3.1 數 的 定 標在定點DSP芯片中,采用定點數進行數值運算,其操作數一般采用整型數來表示。一個整型數的最大表示范圍
    發表于 04-06 14:07 ?33次下載

    定點小數的表示方法

    定點小數的表示方法   定點小數,是指小數點準確固定在數據某個位置上的小數,從實用角度看,都把
    發表于 10-13 17:12 ?8222次閱讀

    定點小數的編碼方法

    定點小數的編碼方法  用定點小數引出數值的三種編碼(原碼、補碼和反碼)方法是最方便的。   (1) 原碼表示法,是用機器數的最高一位代表符號,以下各位
    發表于 10-13 17:19 ?3358次閱讀
    <b class='flag-5'>定點</b><b class='flag-5'>小數</b>的編碼方法

    定點DSP,定點DSP是什么意思

    定點DSP,定點DSP是什么意思 定點DSP完成的是整數運算小數運算,數值格式中不包含階碼,
    發表于 03-26 14:56 ?2329次閱讀

    Labview字符轉小數

    Labview字符轉小數,很好的Labview資料,快來下載學習吧。
    發表于 04-19 10:50 ?0次下載

    DSP芯片的定點運算

    DSP芯片的定點運算,雖然浮點運算逐漸流行,不過定點依然有強大的市場
    發表于 06-17 16:33 ?7次下載

    一文了解FPGA浮點小數定點小數的換算及應用

    定點小數運算 有些FPGA中是不能直接對浮點數進行操作的,只能采用定點數進行數值運算。 所謂定點
    的頭像 發表于 06-28 15:49 ?7138次閱讀

    DSP基礎知識集錦DSP芯片的定點運算

    定點DSP芯片中,采用定點數進行數值運算,其操作數一般采用整型數來表示。
    發表于 04-04 14:51 ?5次下載

    DSP第6章 DSP芯片的定點運算

    數的定標即指人為確定小數位置,以便實現定點運算
    發表于 04-04 17:12 ?5次下載
    DSP第6章 DSP芯片的<b class='flag-5'>定點</b><b class='flag-5'>運算</b>

    LM4F定點格式于浮點格式的對比和浮點運算的應用詳細中文資料

    定點數指小數點在數中的位置是固定不變的,通常有定點整數和定點小數。在對小數點位置作出選擇之后,
    發表于 05-09 11:40 ?11次下載
    LM4F<b class='flag-5'>定點</b>格式于浮點格式的對比和浮點<b class='flag-5'>運算</b>的應用詳細中文資料

    FPGA定點小數的常規格式、相對于浮點小數的優勢與劣勢和計算的概述

    所謂定點小數,就是小數點固定地隱含在某一位置上的數據。由于小數點的位置是固定的,所以就沒有必要儲存它(如果儲存了小數點的位置,那就是浮點數了
    的頭像 發表于 06-12 19:34 ?9509次閱讀
    FPGA<b class='flag-5'>定點</b><b class='flag-5'>小數</b>的常規格式、相對于浮點<b class='flag-5'>小數</b>的優勢與劣勢和計算的概述

    浮點與定點運算以及數據定標和精度問題

    計算機體系結構中浮點和定點數據的表示 1、定點數: 定點數指小數點在數中的位置是固定不變的,通常有定點整數和
    的頭像 發表于 12-06 10:00 ?4843次閱讀
    主站蜘蛛池模板: 丰满女朋友在线观看中文| yellow免费观看在线| 成人免费在线观看| 久久视频在线视频观看天天看视频| 日本色高清| 坠落的丝袜美人妻| 国产专区青青在线视频| 日韩精品一区二区中文| 777精品久无码人妻蜜桃| 国产人妻人伦精品98| 人人干人人看| 97国产精品人妻无码免费| 日本理论片和搜子同居的日子2| 麻豆精品乱码WWW久久密| 亚洲欧美一区二区三区久久| 囯产免费久久久久久国产免费| 年轻的搜子8中字在线观看| 一二三区乱码不卡手机版| 国产午夜精品鲁丝片| 色情www日本欧美| 草莓视频在线观看完整高清免费| 琉璃美人煞在线观看| 一个人免费视频在线观看| 国产在线亚洲精品观看不卡| 偷窥自拍性综合图区| 变态露出野外调教| 女性性纵欲派对| 99精品在线免费| 免费毛片试看| 91素人约啪| 蜜臀AV精品久久无码99| 中文字幕专区高清在线观看| 久草在线新是免费视频| 亚洲人成网站在线播放| 狠狠干女人| 亚洲爆乳无码精品AAA片蜜桃| 国产精品夜夜春夜夜爽久久小| 深夜草逼逼| 国产成人综合网在线观看| 少爷被多个暗卫肉高h| 高清视频在线观看SEYEYE|