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中的浮点支持。可能有一个包含浮点支持的库构建选项-请参阅库文档
你可以问一个关于所需的特定计算的问题,以及如何使用整数或定点算法来完成。或者,您也可以按照此处所述编写自己的浮点显示:例如。可能的