Forum: Compiler & IDEs Float aus zwei unsigned char Werten erstellen


von Daniel M. (dandansen)


Lesenswert?

Hallo,
ich empfange über den Uart verschiedene unsigned char Werte. Dabei 
gehören jeweils immer 2 zusammen und sollen die die Vor- und 
Nachkommastelle eines Floatwertes bilden. Leider weiß ich nicht genau, 
wie ich den float Wert richtig zusammensetzen kann.

Ich habe die Werte in einem unsigned char buffer[] gespeichert. Es gibt 
ja die Funktion atof nur dachte ich, da die ja char Werte erwartet, daß 
ich Probleme mit meinen unsigned char Werten bekomme.

von Rahul D. (rahul)


Lesenswert?

float f = buffer[0] + 0.01*buffer[1];

Würde ich einfach mal so probieren. Vielleicht noch buffer[0] nach float 
casten...

von Daniel M. (dandansen)


Lesenswert?

Oh. Vielen Dank. Ich hab echt viel zu kompliziert gedacht. Oh Mann!
Richtig lautet es

float f = buffer[0] + 0.001*buffer[1];

und funktioniert...

von Peter S. (psavr)


Lesenswert?

Und wie willst Du auf diese Art zum Beispiel 100.75 bilden?

Mit 100.750 = buffer[0] + 0.001*buffer[1] = 100 + 0.001 * 750 hast Du 
das Problem, dass die 750 nicht in Dein Byte passen!

MfG  Peter

von Daniel M. (dandansen)


Lesenswert?

Das stimmt natürlich. Dann müßte ich sicherstellen, daß buffer[1] < 100 
gesendet wird und dann mit 0.01 multiplizieren. Das würde reichen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.