2014-01-14 323 views
0

在STM32F4 MCU上,我需要將浮點數轉換爲整數。STM32F4浮點數轉換爲int轉換

我有FP編號作爲arm_pid_f32()函數的結果,但後來我需要更新接受12位整數的內部DAC值。

我知道我會失去一些「精度」,但如果我不轉換它,並讓它直接進入DAC更新函數,我得到了一些奇怪的行爲,這使我的問題。

什麼是最好的方法來做到這一點?

我正在使用KEIL MDK-ARM IDE + CMSIS DSP庫。這個MCU用於PID控制迴路,我有12位A/D,PID算法和我的係數,DAC作爲輸出設備。 DAC目前用於調試目的,後來將bi替換爲也需要整數的PWM模塊。

回答

0

我假設你有一個接受二進制補碼整數輸入的DAC。

將float變量除以float變量可能具有的最大可能值。這給你一個範圍[-1.0 ... + 1.0]的浮點數

乘以整數值,從DAC產生一個正的滿量程輸出,並假設將是2047.如果你想要的話,然後轉換爲整數。

如果DAC需要一個無符號的正整數輸入值,則需要將2048添加到該結果中。