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:
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:
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,