En principio el pic18F4550 va a tener más botones (conectados directamente a los pines del micro) y 6 ejes los demás botones son los que pondré mediante el MM74C922, porque intente hacerlo con una matriz normal (sin MM74C922) y no pude hacer que me transmitiera las pulsaciones al PC. Muchisimas gracias
Entonces el problema no esta en la comunicacion, si no en tu programa.
Son dos cosas totalmente distintas lo que hablas,, Tu programa deberia ser algo asi:
Leo todos los botones/etc.
Envio los datos
La parte de envio de datos es una que le tenes que dar importancia. Y por ejemplo si necesitas que se envie cada cierto tiempo y se hace en el main y no por interrupcion, entonces tenes que tener en consideracion eso cuando creas la funcion de leer los botones. Ya que cualquier demora que pongas te va a afectar en el loop del main.
Para que entiendas esto no tiene nada que ver con el USB, ya que el mismo programa es valido si uso la UART para comunicarme con RS232. Es decir, tomo los datos, y procedo a enviarlos.
Si falla el envio, entonces es un problema con la programacion de ese envio.
Si llega el envio, pero no estan los datos que deberia ver, entonces el problema esta en la otra parte... que es la lectura de los botones.