【问题标题】:how to perform floating point calculation in tmote sky (contiki)如何在 tmote sky (contiki) 中执行浮点计算
【发布时间】:2014-11-10 12:34:19
【问题描述】:

我有以下代码sn-p:

#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();
}

在Tmote sky平台使用命令上传以上代码后

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

输出:

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

%f**

我怎样才能得到正确的值?

谢谢

【问题讨论】:

标签: embedded msp430 contiki


【解决方案1】:

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

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

您最好询问有关必要的特定计算的问题,以及如何使用整数或定点算术来完成。或者,您可以编写自己的浮点显示,如下所述:例如How to print floating point value using putchar?

【讨论】:

    猜你喜欢
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 2010-12-15
    • 2012-03-10
    • 1970-01-01
    相关资源
    最近更新 更多