Soviel also zum Aufbau der Mausmechanik.
Nun wollen wir uns einmal überlegen, was
wir zu einer Mausabfrage beachten müssen. Zunächst einmal wollen wir die einzelnen Zustände der Maussignale untersuchen um herauszufinden, in welche Richtung die Maus bewegt wird. Hierbei
beschränke ich mich wieder auf die Horizontalbewegung, da der Ablauf für die
Vertikalbewegung identisch ist.
Betrachtet man einmal die Oszillatorkurven in der Grafik oben und " übersetzt" man sie in Bitmuster (0 für " low",1 für
" High"), dann erhält man für die einzelnen Bewegungen folgende Bilder:
Linksbewegung : H - ...0011 0011... HQ - 0110 0110
Rechtsbewegung: H - . . .01100110 . . .
HQ -00110011
Nach jeweils 4 Signalen wiederholt sich
das Ganze immer wieder. Wie Sie sehen
kommen in beiden Bewegungen die H/ HQ-Kombinationen 00,01,10 und 11 vor. Die
Unterschiede der beiden Signale, an denen wir dann die Richtung erkennen können sind folgende:
1) Ist die Bedingung H= HQ=0 erfüllt, und
sind sind folgenden Signale H=0 und
HQ=1, so fand eine Bewegung nach
LINKS statt.
2) Ist die Bedingung H= HQ=0 erfüllt, und
sind die folgenden Signale H=1 und
HQ=0( also genau umgekehrt), so fand
eine Bewegung nach RECHTS statt.
3) Ist die Bedingung H= HQ=1 erfüllt, und
sind die folgenden Signale H=1 und
HQ=0, so fand eine Bewegung nach
LINKS statt.
4) Ist die Bedingung H= HQ=1 erfüllt, und
sind die folgenden Signale H=0 und
HQ=1, dann fand eine Bewegung nach
RECHTS statt.
Zur genauen Bestimmung der Richtung müssen wir also ZWEI zeitlich voneinander
versetzte Signale GLEICHZEITIG auswerten! Das kann unter Umständen sehr kompliziert werden, da mehrere Vergleiche
ineinander verschachtelt werden müssen, um die genaue Richtung herauszufinden.
Aus diesem Grund habe ich eine sinnvolle
Vereinfachung durchgeführt, die durch
folgende Grafik erklärt werden soll: