Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
pianoman
Anmeldungsdatum: 28.10.2008 Beiträge: 5
|
Verfasst am: 05.11.2008, 11:44 Titel: Probleme mit USB-Gameportadapter und FreeBasic |
|
|
Guten Tag,
ich möchte an einem USB-Gameportadapter (LogiLink) den Schaltzustand des Button 1 über FreeBasic abfragen. Einen Joystick habe ich nicht angeschlossen, sondern ich verbinde am 15-poligen D-SUB Stecker den Pin 4 (Ground) mit dem Pin 2 (Button 1) über einen Schaltkontakt (er wird später von einem externen Gerät gebildet). Ein Joystick macht ja meines Wissens auch nichts anderes.
Aus der Befehlsreferenz von www.freebasic-portal.de nehme ich das etwas reduzierte Joystick-Abfrage Programmbeispiel:
DIM AS SINGLE x, y
DIM AS INTEGER buttons, result, i
CONST JoystickID = 0
DO
GETJOYSTICK JoystickID, buttons, x, y
LOCATE 1,1
Print "Buttons ";buttons;
LOOP UNTIL LEN(INKEY)
Leider hat der Schaltzustand keinen Einfluß auf den Ausgabewert von Buttons. Es wird immer der Wert 0 ausgegeben ;-((.
Mein Gameportadapter ist neu. Er hat noch einen Schalter mit vier Positionen. Der Effekt ist aber bei jeder Position dersebe.
Der Adapter wird aber von Windows XP erkannt. Wenn ich den Adapter vom USB abziehe, wird für Buttons der Wert -1 ausgegeben.
Kann mir jemand sagen, was ich falsch mache?
Für Hinweise wäre ich sehr dankbar.
Viele Grüße
pianoman |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 05.11.2008, 12:40 Titel: |
|
|
1) Am USB läßt sich der Status der Knöpfe nicht einfach abfragen. Da es sich um einen Adapter handelt, mußt Du Dich an die USB-Spezifikationen (Protokoll, Signalablauf) hhalten.
2) Unter XP lassen sich die Ports ohnehin nicht einfach so ansprechen. Das geht nur über entsprechende Treiber, auch in der Konsole. _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 05.11.2008, 14:13 Titel: |
|
|
@Elektronix warum nicht?
Wenn ein Joystik am USB hängt, erkennt Win / Linux dieses gerät und registriert das Gerät als joystick. Sogesehen müsste man anschliessend auch mit getjoystick drauf zugreifen können.
Direkt am USB gehts natürlich nicht, aber wenn ein Jystick Adapter dazwischen hängt, dann sollte es schon gehen, sofern der treiber installiert is.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 05.11.2008, 15:05 Titel: |
|
|
lässt sich der joystick in der systemsteuerung kalibrieren?
falls ja, wende dich am besten mal an die fb-entwicker, dann ist das ein bug... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 05.11.2008, 15:39 Titel: |
|
|
Hi,
pianoman hat Folgendes geschrieben: | an einem USB-Gameportadapter (LogiLink) |
es ist möglich, dass der Adapter von der "Joystick-API" nicht richtig erkannt wird.
Der Adapter hat doch 4 verschiedene Einstellmöglichkeiten, probier die mal aus.
Frag mit Code: | result = GETJOYSTICK (JoystickID, buttons, x, y) | ab ob die Joystickabfrage erfolgreich war (result=0).
EDIT/
Willst du dies mit dem Gameport machen?
http://www.wetterstationsforum.de/phpBB/viewtopic.php?p=85194&sid=bed3176f9b2c5c1fac2ea86646b08383#85194 _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
pianoman
Anmeldungsdatum: 28.10.2008 Beiträge: 5
|
Verfasst am: 05.11.2008, 17:21 Titel: |
|
|
Ich danke für die Beiträge.
Nach längeren Recherchen bin ich selbst auf die Lösung gekommen:
Der Widerstand der Potentiometer eines Joysticks für die X- und Y-Achse muß im Bereich von 0 - 100 KOhm liegen. Wenn man die Pins 3 und 6 nicht beschaltet, liegt dieser Wert eben außerhalb der vorgeschriebenen Grenzen. In diesem Fall fragt der Gameporttreiber den Zustand der Schalter gar nicht ab!!
Nachdem ich zwei Widerstände von ca. 56 KOhm zwischen + VDC (Pin 1) und den Pins 3 und 6 eingelötet hatte, wurde der Button 1 mit dem obigen Programm korrekt abgefragt. Mit dieser Beschaltung habe ich somit einen funktionierenden Joystick vorgetäuscht ).
MfG. pianoman |
|
Nach oben |
|
 |
|