Hola amigos !
Estoy tratando de lograr una comunicación PIC-PC / PC-PIC con un 18F2550, a través de las facilidades que brinda EasyHID.
A través de la instrucción
GOSUB DoUSBOut logro comunicarme desde el PIC hasta el ordenador y el programa hecho en VB6 responde sin problemas a las "órdenes" del PIC.
Mi problema se origina al tratar de enviarle datos ó información al PIC
Imaginen un programa en el PIC que maneje un contador 0 a X, y que un botón en la aplicación VB6 esté encargada de resetear ó reiniciar la cuenta.
Dentro del lazo de la cuenta incluyo la instrucción
GOSUB DoUSBIn esperando que el PIC "observe y controle" si hay algún dato ingresado por USB, y que si lo encuentra, actúe en consecuencia.
En el caso de que no haya dato ingresado desde la PC, mi idea era que volvía y continuaba con el resto del programa, ya que las instrucciones son bien pocas y sencillas :
' ************************************************************
' * receive data from the USB bus *
' ************************************************************
DoUSBIn:
USBIN 1, USBBuffer, USBBufferSizeRX, DoUSBIn
RETURN
Es decir, el programa entra en la etiqueta DoUSBIn, toma el dato del buffer y sigue su camino de regreso, a través del
RETURNPero esto no ocurre !!!!!

Cuando llega a la línea
USBIN 1, USBBuffer, USBBufferSizeRX, DoUSBIn, el programa muere allí esperando el ingreso de algún dato.
Si no le enviamos dato alguno (el que sea) queda estancado el programa allí y no continúa con la rutina de trabajo.
Una de las pruebas que hice y funcionó OK, es la de colocar un Timer en la aplicación de VB6 y cada 1ms envío a través del buffer el número 0 (mis controles deseados los hago trabajar con otros números)
De ésta forma cada vez que el programa pasa por la etiqueta
DoUSBIn encontrará "algo" y permitirá que el programa siga corriendo.
Es ésto normal ?
No debiera trabajar como cualquier caso de
GOSB >>> instrucciones ... >>> RETURNExisten opciones para que el programa no caiga en ése agujero sin salida ?
Si fuese una aplicación, dependiente sólo del PC, no habría problemas ya que el PIC esperaría sólo las ordenes del PC y las ejecutaría sin problemas, pero es el caso en que la comunicación debiera ser en ambos sentidos y en cualquier momento y no puedo lograr resolverlo.
Espero se haya entendido mi duda.
Tengo muchas más, pero al menos me gustaría arrancar con ésta.
Saludos a todos y el agradecimiento a quienes me puedan ayudar.
Mario