Echtzeit-Problem

kabbesman

Cadet 1st Year
Registriert
Okt. 2006
Beiträge
13
Hallo

ich habe folgendes problem:
Ich möchte für meinen freund zum geburtstag eine schnittstelle zwichen USB und einem SNES-Controller ( klick ) basteln. ich habe mir einen Mikrocontroller gekauft der das USB-Protokoll übernimmt und welchen man mit dem computer ansteuern kann (pins setzen/lesen).
Mein problem is jetzt, dass der controller 1. an dem clock- pin 6µs lange HIGHs und LOWs benötigt (kann ich möglicherweise noch ohne den computer regeln) und 2. dass der controller im selben zeitabstand ausgelesen werden muss (tastenstatus)
da es ja ne art gamepad wird, kann ich kein zu rechenintensives programm verwenden (also auch nicht wirklich echtzeit).
hat jemand eine lösung?
 
Zuletzt bearbeitet von einem Moderator: (Lexikon-Link korrigiert)
kauf' doch einfach ein "modernes" USB-Gamepad und baue die Elektronik in das Gehäuse des SNES-Controllers ein.
 
naja ich wollte das man die gamepads auch noch an der richtigen console verwenden kann
außerdem glaub ich wird es schwer sein ein so "primitives" gamepad zu finden ^^

EDIT: bei richtigen gamepads gehts ja auch un da müssen ja noch größere datenmengen in echtzeit übertragen werden, wegen proportionalen achsen etc
 
Zuletzt bearbeitet:
Der Mikrocontroller (bzw. evtl. ein zusätzlicher) muss auf jeden Fall das regelmäßige Auslesen und das Senden der High und Lows übernehmen. Der Pc pollt dann z.B. alle 100µs und holt die vom Mikrocontroller gepufferten Tastenbefehle ab.
 
@FreddyMercury

wo du recht hast hast du recht. ich bin aktuell nur etwas verzweifelt... tut mir leid.

@BerinG

das wär ne gute idee ich werd mich mal informieren ob der µc buffern kann. wenn ja wäre das wohl das beste.

jetzt gits nur noch eine frage:
wenn das mit dem buffern klappt, werde ich ein programm schreiben, dass den buffer ausliest und vorher eingestellte tastatur-tasten an windows schickt (pimitiv ich weiß aber von richtiger treiber-programmierung hab ich keine ahnung un das wäre auch zu umständlich)
die frage is nur, wie oft die taste "gesendet" werden muss, um flüssig zu spielen oder ob das auch i-wie gebuffert wird

ich hoffe ihr wisst was ich meine...
danke für eure antworten ich würde mich freuen wenn ihr auch darauf ne antwort wüsstet
 
Diese Tasten haben ja eine gewisse Trägheit und so sonderlich schnell ist der Mensch nun auch nicht. Kannst ja mal testen, wie oft du eine Taste pro Sekunde überhaupt drücken kannst ;)
Ein Polling vom PC aus im Bereich von etwa 1ms wäre sicherlich mehr als ausreichend (wobei bei einem Poll der Status aller gedrückten Tasten gleichzeitig übertragen wird). Wahrscheinlich würden auch 10ms reichen, denn ein PC braucht diese Zeit ja auch zum Aufbau eines Bild wenn man es mit 100fps spielt. Musst du halt mal ausprobieren ob 1ms Pollingzeit zu viel Performance braucht (wobei das meiner Meinung nach vernachlässigbar wenig brauchen sollte).
Wenn ichs mir so recht überlege mit der Reaktionszeit des Menschen: Pufferung wäre wohl gar nicht nötig sondern nur die Abfrage des aktuellen Stands. Machts nur unnötig komplex ;)
 
also erst ma vielen dank für eure antworten :)
die ausleserate von dem gamepad leigt, wenns von der eigentlichen konsole ausgelesen wird bei ~60 Hz. ich schätze dass ich mich (wenn ichs schaffe) auf die 60Hz beziehen werde und hoffe das 60 tastendruck-befehle ausreichen, um eine gedrückt gehaltene taste zu simulieren^^
 
Zurück
Oben