| Zeile 1: | Zeile 1: | ||
| − | Der Gameport ist ein ein 15-poliger Anschluss, meist auf Soundkarten anzufinden (da er auch für MIDI verwendet wird). Er eignet sich | + | Der Gameport ist ein ein 15-poliger Anschluss, meist auf Soundkarten anzufinden (da er auch für [[MIDI]] verwendet wird). Er eignet sich besonders gut für Joysticks und Lenkräder, da die Daten vorher nicht vom jeweiligen Gerät bearbeitet werden müssen. |
== Programmierung == | == Programmierung == | ||
| − | Der Gameport wird über den [[I/O-Port]] 0x201 angesprochen. In ihm sind 8 Bits auf 2 Eingabegeräte aufgeteilt und diese 4 Bits jeweils nochmal auf 2 Buttons und 2 Achsen geteilt. | + | Der Gameport wird über den [[I/O-Ports|I/O-Port]] 0x201 angesprochen. In ihm sind 8 Bits auf 2 Eingabegeräte aufgeteilt, und diese 4 Bits sind jeweils nochmal auf 2 Buttons und 2 Achsen geteilt. |
{| {{prettytable}} | {| {{prettytable}} | ||
| Zeile 28: | Zeile 28: | ||
=== Achsen === | === Achsen === | ||
| − | Um die Achsen auszulesen, muss man erst ein beliebigen Wert in den [[I/O-Port]] schreiben. Dadurch werden alle Achsen-Bits auf 1b gesetzt. Nun muss man die Zeit messen bis das jeweilige Bit wieder 0b wird. Da die Werte von Treiber zu Treiber abweichen ist meistens eine Kalibrierung erforderlich. | + | Um die Achsen auszulesen, muss man erst ein beliebigen Wert in den [[I/O-Ports|I/O-Port]] schreiben. Dadurch werden alle Achsen-Bits auf 1b gesetzt. Nun muss man die Zeit messen bis das jeweilige Bit wieder 0b wird. Da die Werte von Treiber zu Treiber abweichen, ist meistens eine Kalibrierung erforderlich. |
=== Kalibrierung === | === Kalibrierung === | ||
| − | Da der Joystick keine linearen Werte zurückgibt ist es sinnvoll nicht nur die Ecken als Bezugspunkte bei der Kalibrierung zu benutzen. Ansonsten würde sich die Mitte in Richtung einer Ecke verschieben. Man muss also auch die Mitte als Bezugspunkt nehmen. | + | Da der Joystick keine linearen Werte zurückgibt, ist es sinnvoll nicht nur die Ecken als Bezugspunkte bei der Kalibrierung zu benutzen. Ansonsten würde sich die Mitte in Richtung einer Ecke verschieben. Man muss also auch die Mitte als Bezugspunkt nehmen. Je nachdem, ob der eingelesene Wert über der Mitte oder unter der Mitte liegt, wird dann ein anderer Skalierungsfaktor benutzt. |
| − | Es ist außerdem sinnvoll in der Mitte eine kleine Deadzone einzurichten | + | Es ist außerdem sinnvoll, in der Mitte eine kleine Deadzone einzurichten bei der dann sofort der Mittelwert zurückgegeben wird, da viele Joysticks beim Zurückschnappen nicht genau in der Mitte halten. |
[[Kategorie:Hardware]] | [[Kategorie:Hardware]] | ||