Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
08.12.2006, 08:58
Beitrag #1
|
Holger90
LVF-Grünschnabel
Beiträge: 13
Registriert seit: Oct 2006
8.2
-
kA
Deutschland
|
Maskierung
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
|
|
|
08.12.2006, 09:24
Beitrag #2
|
|
|
08.12.2006, 10:49
Beitrag #3
|
Holger90
LVF-Grünschnabel
Beiträge: 13
Registriert seit: Oct 2006
8.2
-
kA
Deutschland
|
Maskierung
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
|
|
|
08.12.2006, 11:25
Beitrag #4
|
|
|
08.12.2006, 11:48
Beitrag #5
|
Holger90
LVF-Grünschnabel
Beiträge: 13
Registriert seit: Oct 2006
8.2
-
kA
Deutschland
|
Maskierung
' 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
|
|
|
| |