Moyano tengo un problemita haciendo una comunicacion USB_CDC!!!
Tengo tres led que me deberian indicar cuando el PIC:
1.No esta Conectado al PC (ROJO)
2.Cuando esta Conectado al PC (Amarillo)
3.Cuando esta Enumerado (VERDE)
Punto 1: Conecta el led al Vusb con una resistencia de 470R , con esto sabrás cuando estás conectado a la alimentación. (led amarillo).
Punto 2: Usa la función usb_wait_enumeration(){} de la siguiente manera:
enciende led rojo // Conección de alimentación pero no está enumerado.
apaga led verde // no esta enumerado.
usb_wait_enumeration(){} ....espera que se enumere.
enciende led verde // dispositivo enumerado.
apaga led rojo // USB oK....no hay error.
El código va dentro del main pero fuera del bucle infinito...
Para el código que no te funciona, mirá el post #28 de la página 2 del foro. Ahí muestra como usar la función:
usb_cdc_connected()
get_string_usb() , nunca lo utilicé tendría que ver como es la función.
Por que el led amarillo no enciende al conectar el dispositivo?
Mal programada la función...la solución: Usar usb_wait_enumeration(){} o fijarse como usar el usb_cdc_coneccted() en la pagina 2.
Por que el led rojo no titila ni se apaga el verde al cerrar el puerto en VB?
El host no le avisa al dispositivo cuando se cierran las comunicaciones. Uno mismo tiene que fijarse cuando no hay comunicaciones.
Cuando vos conectas el dispositivo el host lo enumera. Luego conectas el COM a la aplicación ( El dispositivo no interviene) y por último cerras la comunicación con el COM (el dispositivo no interviene)...por que digo que el dispositivo no interviene:
La aplicación en VB cierra el controlador que se comunica con el dispositivo ....el dispositivo ni se mosquea cuando cerras la comunicación....por que sigue conectado a la PC y enumerado.
Ademas: como puedo saber en VB que se a conectado el dispositivo al puerto?
Si hacemos de cuenta que el dispositivo genera un COM4 y la aplicación trata de conectarse con el controlador de dicho dispositivo. El controlador responderá de manera adecuada y nos enlazará.
Ahora si desconectamos nuestro dispositivo y la aplicación trata de conectarse al mismo puerto (inexistente ya que hemos desconectado el dispositivo), mostrará un error que podemos procesar para mostrar "dispositivo no conectado"
También podemos hacer un pequeño subprograma en un timer que se ejecute cada 100ms aprox....o menos... enviando un comando al dispositivo al cual se tenga que hacer eco....si la aplicación no obtiene respuesta del comando...se tomo que se ha desconectado y para la comunicación....
En fin son ideas...
PD: HE TERMINADO DE ESCRIBIR EL MANUAL DE APLICACIONES HID POR LO TANTO PROXIMAMENTE SUBIRÉ TODO PARA QUE LO VEAN.