TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: microcarsil en 29 de Diciembre de 2005, 23:49:00
-
Hola a todos, estuve probando lo relacionado a la comunicación usb, con el copilador pcwh 3.236 y el programa easyHid, la interface esta hecha para visual c++ 6.0, el problema en si es que cuando corro la aplicación si me reconoce el dispositivo pero cuando quiero enviar datos no lo hace, mis configuraciones son las siguientes:
PARA PCWH:
0x61,0x04, //vendor id
0x29,0x00, //product id
#DEFINE USB_HID_DEVICE TRUE
#define USB_EP1_TX_ENABLE USB_ENABLE_INTERRUPT
#define USB_EP1_TX_SIZE 8
#define USB_EP1_RX_ENABLE USB_ENABLE_INTERRUPT
#define USB_EP1_RX_SIZE 8
PARA EASYHID:
#define VENDOR_ID 0x0461
#define PRODUCT_ID 0x0029
#define BUFFER_IN_SIZE 8
#define BUFFER_OUT_SIZE 8
En si EasyHID genera dos programas uno para tu pic para los siguientes copiladores: PROTON Development Suite y PICBASIC PRO. y el segundo para hace la interfaz (en visual c++, visual basic y borland delphi). Yo solo lo utilice para que me generara el programa en visual c++ y lo referente al programa del pic lo hice en el pcwh 3.236. No se si necesariamente se tenga que elaborar el archivo hex para quemar el pic en alguno de los copiladores antes mencionados para que funcione, lo raro como ya dije al principio pues si me lo reconoce cuando corro la aplicación en visual c++ pero no pasa nada cuando envio datos. Ojala y alguien haya trabajado con ese programa para que me comente como le hizo o si hay algun problema en usar conjuntamente EasyHID y pcwh 3.236.
Aqui dejo el enlace para el EasyHID:
http://www.mecanique.co.uk/products/usb/easyhid.html
-
Hola:
Yo he usado el EasyHid para PBP y VB y no he tenido prublemas, en el codigo generado hay unos vectores en mi caso este:
USBBuffer Var Byte[USBBufferSizeMax]
que genera para PBP en VB tambien me genera un vector, la posicion del vector del codigo de PBP tiene que ser menor a la del de VB, tampoco se puede utilizar la posicion 0 eso es para un tipo de comunicacion (revisa la ayuda de EasyHid), tambien genera una funcion llamada USBSERVICE que hay que hacer un llamado constante para que no se pierda la conexion, revisa lo que te digo, aunque pues sinceramente no se si funcione para otro lenguaje que no sea basic (para pic) ya que al generar los dos codigos por algo sera no?
Suerte...!!! 
PD: mira por aqui tambien:
http://miarroba.com/foros/ver.php?foroid=6510&temaid=3675112
-
Gracias por contestar tan rápido amigo LordLafebre, verifique lo relacionado a que el vector del buffer en visual c++ tiene que ser mayor que mi vector del pcwh
de esta manera ya puedo enviar y recibir los datos, pero tengo otro problemilla que cuando corro visual c++ y cierro el programa, ya no puedo copilar de nuevo porque el programa se queda en memoria y creo que es relacionado a la rutina que tu mencionas USBSERVICE, que en mi caso creo que se llama OnHIDEvent(WPARAM wParam, LPARAM lParam) esta hace llamadas constantes para verificar el estado de conexión, enviar y recibir, etc., voy a estar probando como puedo finalizarla cuando cierre el programa; por ahora cada que quiro copilar pues en el administrador de tareas de windows (control+alt+supr) termino el proceso de mi ejecutable y ahora si puedo seguir copilando
. Gracias por tu ayuda me sirvio de mucho.