#INCLUDE <18F4550.h>
#DEVICE ADC=10
#FUSES HSPLL
#FUSES NOWDT
#FUSES NOPROTECT
#FUSES NOLVP
#FUSES NODEBUG
#FUSES USBDIV
#FUSES PLL5
#FUSES CPUDIV1
#FUSES VREGEN
#FUSES NOPBADEN
#FUSES MCLR
#USE delay (clock=48MHZ)
#INCLUDE <usb_cdc.h>
int16 Canal1,Canal2,Canal3,canal4;
float v1,v2,v3,v4,muestra=5;
int i;
char dato;
void main() {
setup_adc_ports(AN0_TO_AN3);
setup_adc(ADC_CLOCK_DIV_64);
usb_cdc_init();
usb_init();
usb_wait_for_enumeration();
while(!usb_cdc_connected()){
}
do{
usb_task();
if (usb_enumerated()){
if (usb_cdc_kbhit()){
dato=usb_cdc_getc();
if (dato=='A'){
v1=0;
v2=0;
v3=0;
v4=0;
for (i=1; i<=muestra; i++){
set_adc_channel(0);
delay_us(20);
Canal1=read_adc();
v1=v1+5.0*Canal1/1023.0;
}
v1=v1/muestra;
for (i=1; i<=muestra; i++){
set_adc_channel(1);
delay_us(20);
Canal2=read_adc();
v2=v2+5.0*Canal2/1023.0;
}
v2=v2/muestra;
for (i=1; i<=muestra; i++){
set_adc_channel(2);
delay_us(20);
Canal3=read_adc();
v3=v3+5.0*Canal3/1023.0;
}
v3=v3/muestra;
for (i=1; i<=muestra; i++){
set_adc_channel(3);
delay_us(20);
Canal4=read_adc();
v4=v4+5.0*Canal4/1023.0;
}
v4=v4/muestra;
printf(usb_cdc_putc,"%2.2f%2.2f%2.2f%2.2f",v1,v2,v3,v4);
}
else if (dato=='B'){
printf(usb_cdc_putc,"B");
}
}
}
}while(TRUE);