Saludos, tengo un pequeño con la comunicacion USB del pic 18F4550, estoy usando sensores ultrasonicos para medir distancia SRF05, segun la hoja de datos del sensor este necesita un pulso minimo de 10 us y esperar aprox 50 ms, para esto utilizo el Timer 0 de Pic, por cada interrupcion del timer, cambio los valores para que se alterne entre 10 us en alto y 50 ms en bajo, bueno aunque los 10 us nos los puedo conseguir aqui empieza mi primer problema, creo es el menos significativo ya que la hoja de datos dice: "minimo 10 us", bueno este sensor me genera un pulso que va de 100 us a 25 ms segun la distancia, para esto utilizo el Timer 1 y el modulo CCP en modo captura, se me ocurrio configurar el timer para que cuente cada 50 us y que incremente un contador, asi cuando genere un pulso de 100 us, este me cuente hasta dos, el problema es que tampoco consigo esos 50 us y por ultimo necesito que los datos se desplieguen en la PC, para esto ocupo el modulo USB.
Aunado a los problemas que tengo con los Timer's, le sumo el problema de comunicacion ya que cuando conecto el cable usb a la PC este transmite por un tiempo y de repente se muero, es decir, ya no hace nada, no se si los timers o interrupciones interfieran con la comunicacion, aun no domino el PIC al 100% no comprendo del todo la configuracion de los fuses.
Como antecedente ocupo un cristal de 4 MHz, pero como conseguia los tiempos, probe con uno de 20 MHz y con este me acerque un poco mas auque obtengo el mismo resultado, ojala me puedan ayudar, anexo la configuracion de los fuses, yo creo ahi esta el problema, en caso de no ser asi, afjuntare el codigo.
Por todo muchas gracias.
#pragma config PLLDIV=1
#pragma config CPUDIV=OSC1_PLL2
#pragma config USBDIV=2
#pragma config FOSC=HSPLL_HS
#pragma config FCMEN=OFF
#pragma config IESO=OFF
#pragma config PWRT=OFF
#pragma config BOR=ON
#pragma config BORV=3 //2
#pragma config VREGEN=ON
#pragma config WDT=OFF
#pragma config WDTPS=32768
#pragma config CCP2MX=ON
#pragma config PBADEN=OFF
#pragma config LPT1OSC=OFF
#pragma config MCLRE=ON
#pragma config STVREN=ON
#pragma config LVP=OFF
#pragma config ICPRT=OFF
#pragma config CP0=OFF
#pragma config CP1=OFF
#pragma config CP2=OFF
#pragma config CP3=OFF
#pragma config CPB=OFF
#pragma config CPD=OFF
#pragma config WRT0=OFF
#pragma config WRT1=OFF
#pragma config WRT2=OFF
#pragma config WRT3=OFF
#pragma config WRTC=OFF
#pragma config WRTB=OFF
#pragma config EBTR0=OFF
#pragma config EBTR1=OFF
#pragma config EBTR2=OFF
#pragma config EBTR3=OFF
#pragma config EBTRB=OFF