Umwandlung eines Sensorwertes von INT in REAL

dmarco

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich verwende einen Ultraschallsensor, der mit 16 Bit arbeitet, also Abstandswerte von 0-32767 liefert. Um diese Werte in einen Abstand in mm umzuwandeln habe ich folgende Formel erstellt, jedoch ist der Wert für die Distanz ein INT und ich hätte gerne einen REAL:

Distanz:= (Abstand + 7000)/201;

Distanz habe ich als REAL deklariert und soll der Abstandswert in mm sein
Abstand ist der Sensorwert von 0-32767

ich habe auch schon folgenden Versuch ohne Erfolg ausprobiert, aber Distanz ist weiterhin ganzzahlig:

Distanz:= INT_TO_REAL((Abstand + 7000)/201);

Vielen Dank schon einmal für die Antworten;)
 
Erst die INT in Real wandeln und dann die Berechnungen durchführen. Wenn du mit INT rechnest, wird natürlich kein Wert hinter dem Komma stehen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

wenn Du in Ganzzahl rechnest, dann erhältst Du natürlich keine Nachkommastellen. Du mußt schon in REAL rechnen:
Code:
Distanz:= (INT_TO_REAL(Abstand) + 7000.0)/201.0;

Harald
 
Was ist nun also der Messwert, und was der berechnete Wert?
Rein laut obiger Formel ist Distanz der zu berechnende, und Abstand der Messwert, was aber irgendwie nich zu deinem Text passen will.

Mfg
Manuel
 
Vielleicht mit einem Real-Typ rechnen? Abstand -> LREAL oder

Distanz:= ((Abstand + 7000.0)/201); ?

Viele Grüße
 
Zurück
Oben