Konvertierung 4 Bytes in einen Float

Gast #637773
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.