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:

Gameport auslesen

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



Anmeldungsdatum: 23.10.2015
Beiträge: 40
Wohnort: hinterm Mond

BeitragVerfasst am: 08.11.2015, 20:23    Titel: Gameport auslesen Antworten mit Zitat

Hallo liebes Forum,

heute hab ich wieder ein kleines Problem:


Ich würde gerne wissen, wie ich den Gameport auslese. Dabei möchte ich gerne an alle 4 Achsen herankommen.


Es geht nämlich dabei um ein größeres Projekt, bei dem es wichtig ist, Temparaturen auszulesen. Dadurch, das ich allen Mist da habe, nur keine AD - Wandler, kommt der Gameport mit seinen Achsen gerade recht... durchgeknallt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


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

BeitragVerfasst am: 08.11.2015, 20:25    Titel: Antworten mit Zitat

Wie wäre es mit GetJoystick?
_________________
» 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
CommLan



Anmeldungsdatum: 23.10.2015
Beiträge: 40
Wohnort: hinterm Mond

BeitragVerfasst am: 08.11.2015, 20:37    Titel: Antworten mit Zitat

Ja gut, das ist natürlich eine Möglichkeit.

Aber ich hätte es gerne nicht als Werte von -1.0 bis +1.0 sondern direkt den Wert, den der Gameport ausspukt.

Ich würde den gerne ähnlich ansteuern, wie es bei der Parallelen vorgesehen ist.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1279
Wohnort: Ruhrpott

BeitragVerfasst am: 09.11.2015, 11:03    Titel: Antworten mit Zitat

Warum willst du dir das Leben unnötig schwer machen? Die Float - Werte von GetJoystick lassen sich doch mühelos in passende Integer - Werte umrechnen.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
CommLan



Anmeldungsdatum: 23.10.2015
Beiträge: 40
Wohnort: hinterm Mond

BeitragVerfasst am: 11.11.2015, 08:00    Titel: Antworten mit Zitat

Aber wie soll das mathematisch gesehen funktionieren ?

Jeder Temparatursensor hat einen anderen Wertebereich / Reaktionsspanne, leider gibt es da keine Norm, wie für so vieles andere auch nicht. Für die Umberechung vom Gameport aus hätte ich dann eine Formel. Für +1.0 bis -1.0 nicht. weinen

Und so schwer kann es eigentlich nicht sein... Ich werde dann mal demnächst meinen alten Rechner auspacken, einen Joystick anschließen und gucken, welche Werte der Gameport mir liefert, wenn ich ihn abfrage wie die parallele mit INP oder schreibe (Wenn der Gameport das kann, wo ich fast vermute, das er nicht kann) mit OUT.

Mal gucken, ob ich den Gameport im Eifer des Gefechts gleich abfackel durchgeknallt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1279
Wohnort: Ruhrpott

BeitragVerfasst am: 11.11.2015, 14:02    Titel: Antworten mit Zitat

Ich fürchte, da haben wir jetzt aneinader vorbeigeredet (bzw. -geschrieben grinsen ). GetJoystick fragt nur USB - Joysticks ab. Ein Joystick am Gameport (ich habe es gerade ausprobiert) wird nicht erkannt. Du müsstest den Joystick also direkt über seinen I/O - Port ansprechen. (Siehe auch http://www.lowlevel.eu/wiki/Gameport)

Die Sache hat allerdings einen Haken: Bis Windows ME war das problemlos möglich, ab XP verhindert Windows den direkten Zugriff auf die Hardware. Auch INP und OUT von FB funktionieren nicht mehr. Du benötigst dazu einen speziellen Treiber, wie z.B. inpout32.


Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jojo
alter Rang


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

BeitragVerfasst am: 11.11.2015, 14:59    Titel: Antworten mit Zitat

grindstone hat Folgendes geschrieben:
Ich fürchte, da haben wir jetzt aneinader vorbeigeredet (bzw. -geschrieben grinsen ). GetJoystick fragt nur USB - Joysticks ab.

Äh nein, das wäre Unsinn. Zumindest unter Windows unterscheidet die API nicht, wo du deinen Joystick anschließt. Das gute alte Problem ist vermutlich aber, dass du erst den entsprechenden Joystick-Typ in der Systemsteuerung hinzufügen musst.
_________________
» 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
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1279
Wohnort: Ruhrpott

BeitragVerfasst am: 11.11.2015, 18:17    Titel: Antworten mit Zitat

@Jojo:
Du hast wie immer Recht. lächeln Ich hatte im Gerätemanager nur nach dem Gameport gesehen, und der war aktiviert. Offensichtlich bin ich ein wenig Plug & Play - verwöhnt...

Nach dem manuellen Eintragen wird der Joystick jetzt erkannt und korrekt abgefragt (Und wenn ich mir die Asugangswerte ansehe, weiß ich auch, warum er bei keinem Spiel richtig funktioniert hat mit den Augen rollen ).

@CommLan:
Ich habe noch einen Thread gefunden, der genau das Thema Sensorabfrage behandelt:
https://forum.qbasic.at/viewtopic.php?p=23774&sid=6c847f2a6807325d249c7710b51b2a22

Und was die Zuordnung Ausgangswert ---> Temperatur betrifft, schlage ich das klassische Einmessverfahren vor: Erzeuge ein paar passende Referenztemperaturen, sieh dir an, welchen Ausgangswerten sie jeweils entsprechen, erstelle daraus eine Tabelle und schreibe ein Programm, das die Zwischenwerte möglichst genau interpoliert. Erfahrungsgemäß dürfte das auf ein passendes Polynom 2. Grades hinauslaufen.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jojo
alter Rang


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

BeitragVerfasst am: 11.11.2015, 20:20    Titel: Antworten mit Zitat

grindstone hat Folgendes geschrieben:
Nach dem manuellen Eintragen wird der Joystick jetzt erkannt und korrekt abgefragt (Und wenn ich mir die Asugangswerte ansehe, weiß ich auch, warum er bei keinem Spiel richtig funktioniert hat mit den Augen rollen ).

Ist jetzt ein wenig off-topic, aber hast du den Joystick auch richtig kalibriert? zwinkern Das ist ja das größte Problem an den alten Gameport-Joysticks, die Toleranzen sind da in der Spezifikation sehr groß, weshalb man den Joystick erst mal richtig kalibrieren muss (bei DOS-Spielen meist direkt im Spiel, unter Windows im entsprechenden Dialog in der Systemsteuerung).
_________________
» 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
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1279
Wohnort: Ruhrpott

BeitragVerfasst am: 11.11.2015, 20:57    Titel: Antworten mit Zitat

Kalibriert habe ich ihn (so gut es ging), aber das ist ein ganz billiges Teil (20,--DM oder so). Nach links geht der Wert bis -0,5, nach rechts bis 0,2, und die 2. Stelle hinter dem Komma springt schon. Der Joystick an meinem Gamepad ist da wesentlich besser.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. 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