Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Probleme mit USB-Gameportadapter und FreeBasic

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
pianoman



Anmeldungsdatum: 28.10.2008
Beiträge: 5

BeitragVerfasst am: 05.11.2008, 11:44    Titel: Probleme mit USB-Gameportadapter und FreeBasic Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 05.11.2008, 12:40    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 05.11.2008, 14:13    Titel: Antworten mit Zitat

@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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 05.11.2008, 15:05    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 05.11.2008, 15:39    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
pianoman



Anmeldungsdatum: 28.10.2008
Beiträge: 5

BeitragVerfasst am: 05.11.2008, 17:21    Titel: Antworten mit Zitat

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 zwinkern).

MfG. pianoman
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz