Hola J1M, este es el diagrama los condesandores de desacoplo, el cristal y sus condesadores estan sobreentendidos.
Y este es mi codigo:
/********************************************************************************/
/* PicUSB.c */
/********************************************************************************/
#include <18F4550.h>
#DEVICE ADC=8
#fuses HSPLL,NOMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOPBADEN
#use delay(clock=48MHZ)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#define USB_HID_DEVICE FALSE //deshabilitamos el uso de las directivas HID
#define USB_EP1_TX_ENABLE USB_ENABLE_BULK //turn on EP1(EndPoint1) for IN bulk/interrupt transfers
#define USB_EP1_RX_ENABLE USB_ENABLE_BULK //turn on EP1(EndPoint1) for OUT bulk/interrupt transfers
#define USB_EP1_TX_SIZE 1 //size to allocate for the tx endpoint 1 buffer
#define USB_EP1_RX_SIZE 1 //size to allocate for the rx endpoint 1 buffer
#define USB_CON_SENSE_PIN PIN_B3
#include <pic18_usb.h> //Microchip PIC18Fxx5x Hardware layer for CCS's PIC USB driver
#include <PicUSB.h> //Configuración del USB y los descriptores para este dispositivo
#include <usb.c>
void main(void) {
int buffer_tx[1]; //declaramos variables
set_tris_b(0x08);
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_DIV_2);
set_adc_channel(0);
delay_us(10);
usb_init_cs();
while (TRUE)
{
usb_task();
if(usb_enumerated()) //si el PicUSB está configurado
{
buffer_tx[0] = read_adc();
delay_us(10);
usb_put_packet(1, buffer_tx, 1, USB_DTS_TOGGLE);
}
}
}