Gast
#637773
Hallo Leute,
ich versuche verkrampft eine Float-Variable, die in 4 einzelne Bytes zum
Senden über die SPI-Schnittstelle zerstückelt wurde, wieder zu einer
Float zusammenzusetzen.
Bevor Ihr mir jetzt Eure Lösungen bringt, erzähl ich euch mal lieber was
ich schon alles probiert hab:
- Konvertierung über ein union: ->(ohne Ergebnis, ohne
Fehlermeldung)
float bytes2float(unsigned char bytearray[3])
{
union Byte2Float
{
float f32;
char f_uart [4];
};
union Byte2Float help;
help.f_uart[0]= bytearray[0];
help.f_uart[1]= bytearray[1];
help.f_uart[2]= bytearray[2];
help.f_uart[3]= bytearray[3];
return help.f32;
};
- Konvertierung über Bitshiften ->(ohne Ergebnis, Fehlermeldung)
unsigned long help[3];
int i;
for(i=0;i<=3;i++)
{
help[i]=(unsigned long)bytearray[i];
};
f=(float)(0x0000000000000000|(help[0]<<24)|(help[1]<<16)|(help[2]<<8)|(h
elp[3]));
Achso, ich arbeite mit der IAR Workbench auf MSP430F149IPAG
Falls euch eine Lösung einfällt, ich bin für alle Vorschläge dankbar.
MfG
derHoLdo