2016-04-13 20 views
0

ich in diesem Modus habe Nummer zu schweben: Wert mode = 16-Bit-Festkomma (signiert)Convert Fixpunkt unterzeichnet

Und wie kann ich diese Zahl Gleitkomma-Format konvertieren? Irgendeine Idee?

Kann ich diese Funktion verwenden, wenn diese Nummer signiert ist?

float toFloat(int16_t val) { 
     return ((float)val)/256.0f; 
    } 
+3

Was meinst du mit "Fixpunkt"? Ist es in der Form 123.45? Oder ist es nur eine ganze Zahl? –

+0

Es sind Daten von Gyroskop: [--- LINK ---] (http://www.lp-research.com/site/wp-content/uploads/2012/05/LpmsAllUsersGuide1.3.4.pdf), Seite 45 Und es ist Fixpunkt in Form: '123.45' oder' -123.45' – Jirka

+1

Das verknüpfte Datenblatt zeigt Faktoren von 100 oder 1000, nicht 256. Es ist wahr, dass 0x100 wäre 256, aber es gibt keinen Vorschlag, dass es hexadezimal ist. –

Antwort

1

Ok. Ich habe es falsch verstanden. So das Gyroskop Daten Rückkehr in int16 x 1000. Wenn ich Funktion:

float toFloat(int16_t val) { 
    return ((float)val)/1000.0f; 
} 

Nun Daten gut empfängt.

Verwandte Themen