LabVIEWForum.de - Maskierung

LabVIEWForum.de

Normale Version: Maskierung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi Leute

Ich habe ein Problem bei dem ich vom Prinzip her schon nicht weiss wie ich da rangehen soll...

Und zwar soll ich zwischen 90° und 0° Daten Hexadezimal darstellen..

Meine Maskierung hierbei ist FFFC, mein MSB ist 90°

z.B 90°: 1000 0000 0000 00xx
z.B 45°: 0100 0000 0000 00xx
z.B 22,5° : 0010 0000 0000 00xx
z.B 67,5° : 0110 0000 0000 00xx

Hoffe ihr kapiert was ich meine! Habt ihr nen Tipp für mich wie ich das Programmtechnisch anpacken soll wenn ich z.B nen Winkel von 50° habe und den mir Hexadezimal darstellen lasse..

Danke euch
Probier mal das:

Value = round( Winkel * 256.0 / 180.0) * 256

Zur Hexanzeige kannst du das Format des Anzeigeelementes auf Hexdarstellung einstellen.
Hallo

Erstmal danke, ist schon in etwa was ich meine..

Bei mir werden jetzt aber nur 8 Stellen angezeigt, d.h bei 45° wird das gleiche wie bei 45,3° angezeigt..
Wie kann ich die Genauigkeit noch verändern??

grüsse
In wie vielen Bits soll denn der Winkel codiert sein? In 16 Bit? Dann so: "v = round(w * 256.0*256.0 / 180.0) and $FFFC". Oder in 14 Bit, dann so: "v = round(w * 256.0*64.0 / 180.0) * 4".

Das Verfahren ist immer das selbe: "Erg = Wert * Bereichsgröße / MaxWert". Der Rest ist gegebenenfalls Schieben auf die richtigen Bits.
' schrieb:In wie vielen Bits soll denn der Winkel codiert sein? In 16 Bit? Dann so: "v = round(w * 256.0*256.0 / 180.0) and $FFFC". Oder in 14 Bit, dann so: "v = round(w * 256.0*64.0 / 180.0) * 4".

Das Verfahren ist immer das selbe: "Erg = Wert * Bereichsgröße / MaxWert". Der Rest ist gegebenenfalls Schieben auf die richtigen Bits.


Hi "IchSelbst"

Danke so funktionierts! In 14 Bit solls codiert sein.. Mein Datenbereich is 16 bit gross und die letzten 2 Stellen werden weggeschnitten..

danke dir
Referenz-URLs