LabVIEWForum.de - Integer Mathematik

LabVIEWForum.de

Normale Version: Integer Mathematik
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich verwende einen PID Regler auf FPGA Ebene.
Dieser Regler akzeptiert lediglich Regelparameter als I16.
Nun steht in der Hilfe folgendes dazu:
"The upper 8 bits of each integer represent the integer portion of the gain, and the lower 8 bits of each integer represent the fractional portion of the gain. ":blink:

Ich versteh' zwar ungefähr was da steht und auch das eine Fließkommazahl
mit diesem Format darstellbar ist - aber wie???

Kann jemand helfen??

Svente
Du wandelst die beiden Teile (Vorkomma und Nachkomma zahl) in Bool-Arrays und verküpfst diese.

In meinem Beispiel habe ich eventuell noch das LOW und das HI Byte vertauscht, keine Ahnung. Aber das Prinzip ist klar.
Dann wandelst du das sich ergebende 16 Stellige Bool-Array wieder in eine I16


Siehe anhang
Sad

Vieleicht doch irgendjemand????

Bin für alle Geistesblitze offen......

nochmal Svente
' schrieb:Ich versteh' zwar ungefähr was da steht und auch das eine Fließkommazahl mit diesem Format darstellbar ist - aber wie???
Ich tippe mal auf folgende Formel:

Hi(I16) = int(DoubleValue)
Lo(I16) = int(frac(DoubleValue)*256)

wobei du natürlich kontrollieren musst, dass die Zahlteile jeweils nicht überlaufen, und dass möglicherweise bei dem LO-Anteil gerundet werden muss.
ups - da war ich wohl wieder zu ungeduldig.
Vielen Dank. Da wäre ich nie und nimmer drauf gekommen!


(Und wieder war das Forum schneller als NI-München - da hatten 2 Leute
2,5 Stunden Vorsprung!!! Und immer noch kein Rückruf!!!)
Tongue


Svente
Warum alles so kompliziert machen? Die gesuchte Gleitkommazahl ist das 1/256tel der I16-Zahl, Amen.
Referenz-URLs