-1

我的微控制器不处理浮点类型值,那么如何使用 int 对浮点类型值进行操作?

就像我有一个值存储在寄存器 a=5 现在我想将它乘以 0.65 并将结果存储在另一个寄存器 c 中?我该怎么做?在使用 int 时,它解决了在使用 float 时将小数值放在一边,它显示“?”

4

1 回答 1

0

您正在混合多个问题:

首先:即使您的目标控制器不包含浮点单元 (FPU),也可以使用 SW 库完成计算。这个库的使用通常是自动发生的。你可以在浮点数中进行计算。这些库在代码大小和执行速度方面相对庞大。即使您只添加简单的浮点算术,您也会注意到代码大小的巨大增加。

第二个问题是通过 printf 例程的输出。由于浮动端口支持通常不需要,它被条带化以节省代码大小。您可以通过添加库 libprintf_flt.a libm.a 显式激活它并使用链接器选项 -Wl,-u,vfprintf

或者,您可以使用 ftoa 功能。

于 2013-09-04T11:03:42.827 回答