Hallo Leute, wir haben eine USB Tastatur angebaut (mit AT90USB162), es funktioniert auch alles soweit einwandfrei! Nun wie Tastenauswertung wird nicht vom Treiber übernommen was heißen soll, dass der Tasten-Repeat, Tasten-Delay etc. nicht von MS-HID Treiber übernommen wird. Die Tastatur wird zwar einwandfrei erkannt und funktioniert auch, jedoch wenn ich eine Taste drücke kommt gleich ein ganzer Haufen von Tasten. Das Pollingtime vom USB passt aber ... Hat hier jemand eine Idee, woran das liegen könnte, vielleicht Hr. Sauter?? Hab auch im Wiki eine Info gefunden, dass im BIOS ein Keyboardemulator drin ist, der die Umsetzung von USBKey in Scancodes (make/break) durchführt ... vielleicht ist ja hier ein Zusammenhang?? Reportdescriptor und HID_Descriptor wurde bereits kontrolliert, kann aber keinen Fehler finden ... Weiß hier jemand bescheid? grüße Christoph
gibst du in deinem code nach dem senden der taste die taste auch wieder frei? das war bei mir damals das problem gewesen also pseusocode maessig: usb_send( key_a ); wait_until_send_ok(); usb_send( no_key ); wait_until_send_ok();
Fragt sich ob da nicht eine fertige Lösung günstiger wäre, anscheinend ist ja noch eine ziemliche Lernkurve zu bewältigen. Windows hält übrigens einige "nette" Überraschungen für den USB Keyboard-Entwickler bereit. Falls es also schneller gehen soll mit dem Projekt: www.codemercs.com KeyWarrior anschauen.
Hallo Leute, hab das Problem schon gefunden! Hab mal einen USB Keyboard ausgelesen und bin dann auf den Fehler draufgekommen: Hab immer eine Taste geschickt und dann wieder "no key". Also wenn ich ein "a" gedrückt habe, habe ich 0x04 und dann 0x00 geschickt! Windows HID Treiber möchte aber nur die Taste (0x04 zb für "a") einmal, solange die Taste gedrückt ist, erst wenn die Taste wieder losgelassen wird den 7 Byte Frame mit nur 0x00 schicken! ... den Rest macht wirklich der Treiber von selbst! ;-) .... also das Problem hat sich erledigt ... Jetzt wird auch Keydelay und Keyrepeat von Windows übernommen! Derzeit ist der read_frame vm USB noch auszuwerten .... grüße Christoph
Hi >Windows HID Treiber möchte aber nur die Taste (0x04 zb für "a") einmal, >solange die Taste gedrückt ist, erst wenn die Taste wieder losgelassen Bist du dir da wirklich sicher? Normalerweise besitzt jede Tast einen 'Make-Code' für Taste drücken, und einen 'Break-Code' für Taste loslassen. Im allgemeinen entspricht der Break-Code dem Make-Code+$80. Das dient dazu, bei mehreren gedrückten Tasten, das Loslassen einer Taste eindeutig zu registrieren. MfG Spess
Hi Spess53, ja, bin mir sicher! ... das mit Make und Break gibts nur bei PS/2! USB HIDs schicken und den Tastencode und den Rest macht der HID Treiber von Windows! Wie gesagt, haben auch eine "Standard" USB Tastatur ausgelesen und diese "nachgebildet" .... Ist auch in der USB HID Spec. nachzulesen ... nur eben zum Tastenrepeat etc. findet man dort nichts! .... http://www.usb.org/developers/hidpage/epoz_blank_iframe.html?charset=utf-8&css=&customcss=&pageurl=http://www.usb.org/developers/hidpage#Microsoft grüße Christoph
Hi OK. Ich hatte nur die alte Tastaturverwaltung im Kopf. Die war vor USB-Zeiten. MfG Spess
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.