在STM32F4 MCU上,我需要将浮点数转换为整数。
我有arm编号作为arm_pid_f32()函数的结果,但后来我需要更新接受12位整数的内部DAC值。
我知道我会失去一些“精确度”,但如果我不转换它并让它直接进入DAC更新功能,我会遇到一些奇怪的行为,这让我有问题。
这样做的最佳方法是什么?
我正在使用KEIL MDK-ARM IDE + CMSIS DSP库。
BTW:MCU用于PID控制回路,我有12位A / D,PID算法,我的系数和DAC作为输出设备。 DAC目前用于调试目的,后来将替换为PWM模块,也需要整数。答案 0 :(得分:0)
我假设您有一个接受二进制补码整数输入的DAC。
将float变量除以float变量可能具有的最大可能值。这会给你一个范围[-1.0 ... + 1.0]
的浮动乘以从DAC产生正满量程输出的整数值,假定为2047.如果需要则舍入,然后转换为整数。
如果DAC需要无符号正整数输入值,则需要在此结果中添加2048。