PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zahlen normieren, Joystick calibrieren



dwod
28.08.2006, 22:12
Hallo,

da mein Sohn mir mal wieder seine Hilfe versagt, wende ich mich an Euch, vieleicht hat jemand eine Idee O:)

Ein Analogeingang fragt die Stellung eines Joysticks ab und gibt die Werte als 3-bit Digitalzahl aus (3 Ausgänge).

Ist der Joystick in Home-Position wrd eine Taste betätigt und der Wert gespeichert (min).Danach wird der Stick in vorderste Stellung gebracht, eine Taste gedrückt und dieser Wert gespeichert (max).Ich habe dann die beiden Werte min und max, der Joystick ist calibriert:
min----------------------------------------------------max
Danach werden die beiden Werte addiert und durch zwei geteilt (shift rechts):
min------------------------midd---------------------max.
Das gleiche mit min/midd und mac/midd (addieren und durch zwei teilen):
min--------minmidd--------midd--------middmax-----------max.
Das gleiche nochmal um die Auflösung zu verdoppeln (addieren und durch zwei teilen):
Dann habe ich 9 Variable und 8 Datenbereiche :

min---min1---minmidd---min2---midd---max1---middmax---max2---max
----- 0--------1--------------2--------3---------4---------5----------------6---------7 Werte Dezimal
-----0--------1------------- 2-------1,2-------4--------4,1-------------4,2-----4,1,2 Out (binär)
----------------1--------------2-------1,2-------3--------3,1-------------3,2------alle Pins (Out)
Nun kann ich den Datenbereichen die entsprechend Wertigkeit zuordnen:.
Hat jemad eine Idee wie ich ohne aufwendige IF-Konstruktionen die Datenbereiche den Ausgängen zuordne?
Das Einlesen der Joystickstellung ergab z.b. einen Wert zwischen min---min1, dann müssen alle drei Pins auf 0 gesetzt werden oder einen Wert zwischen max1 und middmax, dann müssen die Pins 3 und 1 auf 1 gesetzt werden.

Irgendwelche Ideen oder gehts auch einfacher ?

Gruss

Wolfgang

dwod
29.08.2006, 19:19
Hi Leute,

das Problem hat sich erledigt, auf dem Heimweg ist mir ein 8-Zeiler eingefallen.

Gruss

Wolfgang