


         #include <18F4550.h>
         #device ADC=10
         #fuses PLL1,CPUDIV1,USBDIV,XTPLL,NOFCMEN,NOIESO,PUT,NOBROWNOUT,VREGEN,NOWDT,NOPBADEN,MCLR,NOSTVREN,NOLVP,NODEBUG,NOPROTECT,NOSTVREN,NOCPB,NOWRT,NOWRTC
         #use delay(clock=48000000)
         #include <lcd4x20.c> 
         
         char resultado[27]={0,0,0,0,0,0,0,0,0,0};
         unsigned int16 analog_data_ch0=0,analog_data_ch1=0,analog_data_ch2=0,analog_data_ch3=0;

/////////////////////////// Para Medir tiempo /////////////////////////////////

         int conteo=0;                                // PUSE
         long long tiempo;                            // PUSE
         float ver_tiempo;                            // PUSE
         
         #INT_TIMER0                                  // PUSE
         void maximo_conteo(void)                     // PUSE
         {                                            // PUSE
         conteo++;                                    // PUSE
         }                                            // TIEMPO
         
///////////////////////////////////////////////////////////////////////////////

         void adquisicion_time(void)
         {
         output_toggle(PIN_B3);                             // led status transferencia (conexion activa)
         set_adc_channel (0);
         analog_data_ch0=read_adc();                        //adquisicion1
         set_adc_channel (1);
         analog_data_ch1=read_adc();                        //adquisicion2
         set_adc_channel (2);
         analog_data_ch2=read_adc();                        //adquisicion3
         set_adc_channel (3);
         analog_data_ch3=read_adc();                        //adquisicion4
         sprintf(resultado,"a=%4lub=%4luc=%4lud=%4lu@",analog_data_ch0,analog_data_ch1,analog_data_ch2,analog_data_ch3);    // convertimos y damos formato a los datos del adc
         }
         
         void main(void)
         {
         set_tris_a(0xff);                                        //config puertos
         set_tris_b(0x00);
         lcd_init();
         setup_adc_ports(AN0);
         setup_adc(ADC_CLOCK_INTERNAL);
         set_adc_channel (0);
         delay_ms(1000); 
         SETUP_TIMER_0(T0_INTERNAL|T0_DIV_1);             // PUSE
         ENABLE_INTERRUPTS(INT_TIMER0);                   // PUSE
         enable_interrupts(GLOBAL);
                  
         while (TRUE)
         {
         conteo=0;                                        // PUSE
         set_timer0(0);                                   // PUSE
         output_high(pin_c0);
         adquisicion_time();
         output_low(pin_c0);
         tiempo=GET_TIMER0();
         
         ver_tiempo=(float)tiempo*0.0833+((float)conteo*(float)65535*0.0833);        // 0.0833 uS       
         lcd_gotoxy(2,3); printf(lcd_putc,"T = %f uS",ver_tiempo);
         }
         }
         
