TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: timmy en 04 de Agosto de 2010, 19:22:37
-
Hola,
estoy haciendo un proyecto de telemetría para recibir los datos a partir de varios sensores por I2C para pasarlos al ordenador a través del USB y el pic 16F2455. El problema viene cuando utilizo la función de la librería usb_kbhit fuera de la función en la que inicio el USB, nunca devuelve TRUE sin embargo si no coloco el usb_kbhit y recojo el dato con usb_get_packet me llega correctamente.
Se que es por culpa de utilizar el usb_kbhit fuera del main, por que si copio y pego exactamente el cuerpo de la función al main funciona.
He estado pegándome días con esto y no llegué a ninguna solución. Espero que me podáis ayudar.
Muchas gracias.
-
Ya he dado con la solución, la plasmo en el foro por si alguien se encuentra con el mismo problema.
No sé porqué motivo pero al saltar a la función que esperaba los datos se desactivaban las interrupciones globales con lo que las interrupciones del USB no eran tratadas. Poniendo a uno el bit GIE al entrar en la función se soluciona el entuerto.