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.
float f = buffer[0] + 0.01*buffer[1]; Würde ich einfach mal so probieren. Vielleicht noch buffer[0] nach float casten...
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...
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
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.