Hola:
He podido enviar datos del PC al PIC y controlar un servo por puerto USB ahora el tema está que al ponerle a recibor datos al PC este se me queda tirado. Para ello he realizado un programa con C++ y las librerias USB2550 (mpusbapi.dll), para programar el PIC uso el CCS, haber si alguien me puede decir que le pasa, para ello os dejo el código que falla...
CCS:
.......
if (!send_timer)
{
send_timer=250;
delay_ms(100);//Para ver si está enviando paqetes
usb_put_packet(1, out_data, 2, USB_DTS_TOGGLE);
if((usb_put_packet(1, out_data, 2, USB_DTS_TOGGLE)=TRUE))
{
LED_ON(LEDV);
}
}
send_timer--;
delay_ms(1);
}
........
C++
/RX DE DATOS DEL PIC AL PC
PVOID ReceiveData[64];
PDWORD ReceiveLength;
myUSB.ReceivePacket(ReceiveData,ReceiveLength);
m_Realimentacion=myUSB.ReceivePacket2(); //Lo único que hago es que cuando envie ponga un 5 en en dialogo
UpdateData(FALSE);//Actualiza o refresca
donde la funcion RecievePacket2() es:
int USB::ReceivePacket2()
{
int recibe1=0;
int recibe2=0;
PDWORD ReceiveLength=0;
BYTE recibe_buf[64];
ReceivePacket(recibe_buf,ReceiveLength);
recibe1 = recibe_buf[0];
recibe2 = recibe_buf[1];
if(recibe1==0)
{return 5;}
return 1;
USB::ClosePipes();
}
Os recuerdo que puedo enviar datos y creo que tambien recibir pues el LED verde se me enciende y apaga pero al poner la fucncion RecievePacket2 se me queda tirado, creo que puede ser un desbordamiento de datos o algo por el estilo...
Espero que alguien haya utilizado lo mismo y algún esperto me pueda ayudar pues ya llevo dos semanas intentándolo.
See you.