Autor Tema: Teclado USB-HI(18f4550), ¿como emular el comportamiento real de nuestro teclado?  (Leído 3405 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado redep

  • PIC12
  • **
  • Mensajes: 75
Hola

Estoy utilizando el software de REDPIC para mi circuito e logrado que mi ordenador reconozca perfectamente el USB-HID como teclado y que envie una tecla o otra dependiendo de que pulsador de los tres que tengo instalados pulse.

El problema que tengo es:


si nosotros con el teclado que tenemos en casa pulsamos la letra A durante 1 segundo sale "aaaaaaaaaa"

si yo pulso con mi teclado pic el pulsador de la tecla A durante 1 seg sale "aaaaaaaaaa"


si con el teclado que tenemos en casa pulsamos la letra A y despues sin sontarla pulsamos la B por ejemplo sale "aaaabbbbbbbbbb"(aunque la a este pulsada durante todo el periodo solo aparece cuando esta sola pulsada)

si yo pulso con mi teclado picel pulsador de la tecla A y despues sin sontarla pulsamos el pulsador de la B por ejemplo sale "aaaabababababa"( es decir cuando estan los dos pulsados se intercalan como seria de esperar)

Aunque en el notepad o work solo aparezca la ultima tecla pulsada cuando mantenemos presionadas varias teclas realmente creo que si que se reciben en el PC, PORQUE DIGO ESTO... Si jugamos a cualquier juego tipo metal slug el juego nos permite disparar hacia arriba(pulsacion de dos teclas a la vez) y otras acciones que requieren de dos teclas.

El problema es que con lo que me hace a mi el pic me crea extraños, supongo que sera porque intercala las letras y no actua fielmente como lo hace un teclado convencional. He estado mirando por hay pero tan solo he encontrado como se llama el metodo de actuar "sobrepulsacion de N teclas".

Haber si alguien me ayuda ha hacer un GAME PAD en condiciones.

Saludos


Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758

si nosotros con el teclado que tenemos en casa pulsamos la letra A durante 1 segundo sale "aaaaaaaaaa"

si yo pulso con mi teclado pic el pulsador de la tecla A durante 1 seg sale "aaaaaaaaaa"

No entiendo, falta una a?  :z)


si con el teclado que tenemos en casa pulsamos la letra A y despues sin sontarla pulsamos la B por ejemplo sale "aaaabbbbbbbbbb"(aunque la a este pulsada durante todo el periodo solo aparece cuando esta sola pulsada)

si yo pulso con mi teclado picel pulsador de la tecla A y despues sin sontarla pulsamos el pulsador de la B por ejemplo sale "aaaabababababa"( es decir cuando estan los dos pulsados se intercalan como seria de esperar)

El report HID establece que podes enviar hasta 6 teclas pulsadas a la vez, así que solo tienes que testear que teclas son pulsadas y enviarlas. O sea, cuando envías el mensaje, en la posición 2 envías la tecla 1, en la posición 3 la tecla 2, etc.... http://www.atmel.com/dyn/resources/prod_documents/doc7602.pdf (Pag 6)



Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado redep

  • PIC12
  • **
  • Mensajes: 75
Perdona con lo de primero queria mostrar que cuando marcas una tecla existe un comportamiento normal entre un teclado convencional y el usb-PIC-HID(son el mismo numero de a´s).

El segundo caso era el que no comprendia, ahora que mandas el REPORT lo mirare e intentare adaptarlo en las funciones que tengo en el CCS para tratar la emulacion.

Mañana cuento.

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Buscate un Sniffer de USB y comprubea cómo manda las tramas un teclado real. Creo recordar... tiro de memoria... que cuando se le envían las teclas pulsadas deben enviarsele un buffer de 6 las teclas pulsadas en ese momento en el orden en que fueron pulsadas por ejemplo a b 0 0 0 0 todo el rato hasta que dejen de ser pulsadas, si luego se pulsa tambien c pues a b c 0 0 0, si ahora dejas de pulsar b pues a c 0 0 0 0, si ahora vuelves a pulsar b pues  a c b 0 0 0 Cuando una tecla deja de estar pulsadas debes de dejar de enviarla en ese buffer de teclas pulsadas. Si no hay niguna tecla pulsada deberas mandar el buffer a 0. Si se intercalan buffer a 0 y teclas se verán repetidas en pantalla.

Lo dicho busca un sniffer de usb y a estudiar e imitar.

Saludos
« Última modificación: 04 de Agosto de 2011, 12:45:01 por elmasvital »


 

anything