我的微控制器不处理浮点类型值,那么如何使用int对浮点类型值进行操作?
就像我有一个存储在寄存器a = 5中的值 现在我想将它乘以0.65并将结果存储在另一个寄存器c中? 我该怎么做? 在使用int时,它解决了将小数值放在一边而使用浮点数时它会显示“?”
答案 0 :(得分:0)
你正在混合多个问题:
首先:即使您的目标控制器不包含浮点单元(FPU),也可以使用SW库完成计算。 这些库的使用通常是自动发生的。你可以用浮点数做计算。 这些库在代码化和执行速度方面相对较大。即使你只添加简单的float算术,你也会注意到代码大小的增加。
第二个问题是通过printf-routines的输出。由于不需要浮动端口支持,因此它是条带化的以节省代码大小。您可以通过添加库libprintf_flt.a libm.a并使用链接器选项-Wl,-u,vfprintf
来显式激活它另外,您可以使用ftoa功能。