You are not using floating point variables.
Also printf uses a "%f" for flat format.
MS
Abdullah wrote:
> Hi there,
>
> This code gives me wrong output. I don't know why!
>
> event message_t* Receive.receive(message_t *msg, void *payload, uint8_t
> len) {
>
> int32_t p = getRssi(msg);
>
> // t1 = p - c, where c = -67.03
> int32_t t1 = p + 67.03;
>
> // t2 = t1 / a, where a = -15.73
> int32_t t2 = t1 / -15.73;
>
> // d = 10^t2, where d is the distance in meters.
> int32_t d = powf( 10.0, t2 );
>
> printf("%d dBm , %d m\n", p , d);
>
> //printf("Rssi Message received from node %d: %d dBm\n", call
> Ieee154Packet.source(msg), getRssi(msg));
> printfflush();
> return msg;
> }
>
>
> I cannot add/div float numbers, and I cannot print float numbers in
> printf !!
> I'm using iris mote and tinyos, nc.
>
> Cheers,
>
>
>
>
> ___
> Tinyos-help mailing list
> Tinyos-help@millennium.berkeley.edu
> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
___
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help