LabVIEWForum.de
Maskierung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Maskierung (/Thread-Maskierung)



Maskierung - Holger90 - 08.12.2006 08:58

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


Maskierung - IchSelbst - 08.12.2006 09:24

Probier mal das:

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

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


Maskierung - Holger90 - 08.12.2006 10:49

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


Maskierung - IchSelbst - 08.12.2006 11:25

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.


Maskierung - Holger90 - 08.12.2006 11:48

' 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