This is my code:
#include "mbed.h"
Serial pc(USBTX, USBRX); // USBTX - Tranmit on USB USBRX - receive on USB
Serial gps(p9, p10); // tx, rx
char Buffer[4];
struct Location {
long lat; // Lattitude * 10**7
long lng; // Longitude * 10**7
long alt; // Altitude in centimeters (meters * 100)
};
struct Location current_loc = {0,0,0};
union long_union {
long dword;
char byte[4];
} longUnion;
long join_4_bytes(char Buffer[])
{
longUnion.byte[3]= *Buffer;
longUnion.byte[2]= *(Buffer+1);
longUnion.byte[1]= *(Buffer+2);
longUnion.byte[0]= *(Buffer+3);
return(longUnion.dword);
}
int main(){
Buffer[0]=0x01;
Buffer[1]=0x60;
Buffer[2]=0x74;
Buffer[3]=0xCC;
current_loc.lat=join_4_bytes(&Buffer[0]);
pc.printf("latitud: %.f\n\r",current_loc.lat);
}
the output:
latitud: 0
My problem is that I need "current_loc.lat" to be float and I don`t know how to do it.
If I put:
pc.printf("latitud: %d\n\r",current_loc.lat);
I get:
latitud: 23098572
Thaks in advance!
Jose
This is my code:
latitud: 0
My problem is that I need "current_loc.lat" to be float and I don`t know how to do it.
If I put:
I get:latitud: 23098572
Thaks in advance!
Jose