Embedded 如何在tmote sky(contiki)中执行浮点计算

Embedded 如何在tmote sky(contiki)中执行浮点计算,embedded,msp430,contiki,Embedded,Msp430,Contiki,我有以下代码片段: #include "contiki.h" #include <stdio.h> /* For printf() */ PROCESS(calc_process, "calc process"); AUTOSTART_PROCESSES(&calc_process); PROCESS_THREAD(calc_process, ev, data) { double dec=13.2, res=0, div=3.2; PROCESS_BEGIN()

我有以下代码片段:

#include "contiki.h"
#include <stdio.h> /* For printf() */

PROCESS(calc_process, "calc process");
AUTOSTART_PROCESSES(&calc_process);

PROCESS_THREAD(calc_process, ev, data)
{
 double  dec=13.2, res=0, div=3.2;

  PROCESS_BEGIN();

res=dec+div;

printf("%f",res);


  PROCESS_END();
}
#包括“contiki.h”
#包括/*用于printf()*/
过程(calc_过程,“calc过程”);
自动启动流程(和计算流程);
进程线程(计算进程、ev、数据)
{
双dec=13.2,res=0,div=3.2;
进程_BEGIN();
res=dec+div;
printf(“%f”,res);
进程_END();
}
在使用命令将上述代码上传到Tmote sky平台后

make TARGET=sky calc.upload,程序将加载到mote(没有错误)。然后使用makelogin TARGET=sky登录mote,将显示以下输出

输出:

**雾凇以地址4.0开始 MAC 04:00:00:00:00:00:00 Contiki 2.7已启动。节点id设置为4。 CSMA ContikiMAC,信道检查率8 Hz,无线信道26 启动“计算过程”

%f**

如何获得正确的值


谢谢

您需要的不是浮点计算支持-您已经有了。缺少的是
printf()
中的浮点支持。也就是说,
res
将正确计算,但
printf()
不支持其显示

由于它需要相对大量的代码,许多面向微控制器的库忽略了stdio中的浮点支持。可能有一个包含浮点支持的库构建选项-请参阅库文档

你可以问一个关于所需的特定计算的问题,以及如何使用整数或定点算法来完成。或者,您也可以按照此处所述编写自己的浮点显示:例如。

可能的