Autor Tema: Teclado USB con 18F2450  (Leído 1189 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado xarox

  • PIC10
  • *
  • Mensajes: 21
Teclado USB con 18F2450
« en: 12 de Marzo de 2013, 04:52:49 »
Tengo un teclado USB emulado con un PIC18f2450 y me funciona perfecto en Windows, pero cuando lo intento usar en MSDOS no detecta ninguna tecla y en el menu del BIOS de la PC tampoco, en cambio tengo otro teclado usb de la marca logitech y si funciona perfecto en MSDOS y en el menu de la BIOS del PC tambien, pero el micro solo en windows, alguien sabe a que se debe, ya intente de todo, copie el descriptor del logitech y solo consegui enumerarlo, pero me sigue sin leer las teclas, alguna idea?

Modifique esta parte del descriptor:
Código: [Seleccionar]
USB_DESC_INTERFACE_LEN, //length of descriptor      =9
         USB_DESC_INTERFACE_TYPE, //constant INTERFACE (INTERFACE 0x04)       =10
         0x00, //number defining this interface (IF we had more than one interface)    ==11
         0x00, //alternate setting     ==12
         1, //number of endpoints for this interface  //13
         0x03, //class code, 03 = HID     ==14
         0x01, //subclass code //boot     ==15    <---le cambie a 1 que es boot
         0x01, //protocol code       ==16    <----y el protocolo a 1 que es keyboard
         0x00, //index of string descriptor for interface      ==17

y utilizo esta funcion para mandar el dato:

Código: [Seleccionar]
void usb_keyboard_task(void) {
   //static char Char_Tx;
   //disable_interrupts(global);
   if(hay_dato==1){
      hay_dato=0;
      tx_msg[3]=dato;
      usb_put_packet(1,tx_msg,sizeof(tx_msg),USB_DTS_TOGGLE);
      delay_ms(5);
                  }
   else{

      tx_msg[3]=0;
      usb_put_packet(1,tx_msg,sizeof(tx_msg),USB_DTS_TOGGLE);
      delay_ms(5);
       }

Ya lo configure tambien en Low Speed y Full Speed y tampoco :(, alguien me podria dar una mano o alguna idea que me ayude a hacerlo funcionar,


 

anything