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". 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 |