Está en la página 1de 1

#include <18F2550.

h>
#device ADC=8
#fusesHSPLL,NOMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
//pll en div 5 para crystal de 20mhz
#use delay(clock=48000000)
#include ".\librerias\usb_cdc.h"

void main()
{

int8 x,v;//DECLARACION DE VARIABLES


set_tris_a(0xFF);//PUERTO A COMO SALIDA EXCEPTO RA6
set_tris_b(0x00);//PUERTO B COMO SALIDA
set_tris_c(0x00);//PUERTO A COMO SALIDA EXCEPTO RA6
setup_port_a( ALL_ANALOG );//DECLARA TODO EL PUERTO A COMO ANALOGO
setup_adc( ADC_CLOCK_DIV_8);//OSCILADOR DEL CONVERSOR A LA MITA DEL CRISTAL

Set_ADC_Channel(0);
delay_ms(1);
Read_ADC(ADC_START_ONLY);
output_b(0x00);// INICIANDO EL PUERTO B EN CERO
usb_cdc_init(); // Configuramos al puerto virtual.
usb_init(); // Inicializamos el stack USB.
while(!usb_cdc_connected()) {} // espera a detectar una transmisión de la PC (Set_Line_Coding).
do{usb_task();
if (usb_enumerated()) // Espera a que el dispositivo sea enumerado por el host.
{
output_b(0x01);
v=read_ADC( );
DELAY_US(500);
usb_cdc_putc(v);//envia el dato al usb
output_b(0x00);
if(usb_cdc_kbhit()) // En espera de nuevos caracteres en el buffer de recepción.
{
x=usb_cdc_getc(); // asigna a x el dato recivido
output_b(x);// el dato recibido en el puerto b
}

}
}
while (TRUE); // bucle infinito.
}

También podría gustarte