• 資料介紹
    • 前言
    • 使用 CORDIC 計算定點三角函數(shù)
    • 用 CORDIC 浮點計算正余弦量
    • 浮點三角函數(shù)計算程序
    • 利用 Cordic 計算浮點三角函數(shù)時間測試
    • 結(jié)論
  • 資料預(yù)覽
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

LAT1357 利用Cordic計算浮點三角函數(shù)

03/22 14:31
653
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

LAT1357 利用Cordic計算浮點三角函數(shù)

428.57 KB

前言

當(dāng)前 STM32G4 系列以及 STM32H723 中雖然有專門計算三角函數(shù)的硬件 CORDIC,但目前是定點的 CORDIC 硬件,很多實際應(yīng)用,比如電機(jī)控制,數(shù)字電源,客戶整個軟件代碼是基于浮點的運(yùn)算,因此有必要對如何利用 CORDIC 計算浮點的三角函數(shù)(本文計算正弦和余弦),以及計算時間的評估做下說明文檔,給客戶一定的參考示例,本文使用 STM32G474 為例來進(jìn)行。

使用 CORDIC 計算定點三角函數(shù)

這邊不做具體的說明,詳細(xì)信息請參考 STM32G4 的培訓(xùn)文檔。實際上就三個步驟,寫入CSR 寄存器,寫入角度以及模值,讀取計算結(jié)果。注意這邊沒有等待標(biāo)志位的操作,實際上是CORDIC 特有的零開銷單次模式 (Zero overhead single shot mode) ,這種是最快的運(yùn)算方式。

用 CORDIC 浮點計算正余弦量

浮點的計算要做的就是輸入和輸出對浮點轉(zhuǎn)定點,定點轉(zhuǎn)浮點的操作,同時需要根據(jù)角度的周期性,對角度做限制,把角度范圍控制在[-π, π]。

浮點三角函數(shù)計算程序

結(jié)合上面的分析,我們可以將幾個操作步驟整合起來進(jìn)行編程。

利用 Cordic 計算浮點三角函數(shù)時間測試

可以通過對匯編指令的查看,看是否在 STM32G4 上有效的執(zhí)行了浮點指令 FPU。

結(jié)論

從上面的執(zhí)行浮點 CORDIC 運(yùn)算程序以及測試結(jié)果來看,浮點的三角函數(shù)會消耗些時間,主要時間耗在浮點轉(zhuǎn)定點、定點轉(zhuǎn)浮點的過程中,好在 STM32G4 和 STM32H7 系列都帶浮點 FPU單元,可減少計算時間,其他影響因素可以考慮 IDE 的配置,程序是否運(yùn)行在緊耦合 RAM 等配置,以便得到更快的計算速度。

資料預(yù)覽

相關(guān)推薦