hola consulta, hice este programa en Arduino y funciono, ahora quiero hacerlo en pic y no logro hacer el contador con el timer 0, existe alguna librería tipo la función millis de Arduino para pic c, adjunto los archivos y simulación, gracias
				
			
#include <18f2550.h>                            // Incluimos los ficheros del PIC18F4550
#device ADC = 10 
#device PASS_STRINGS = IN_RAM
#use delay(clock = 8000000) 
#fuses NOMCLR, INTRC_IO, NOWDT,NOPROTECT,NOLVP  // Configuración de Fusibles. (Bits de configuración)
#use I2C(MASTER, SDA=PIN_B0, SCL=PIN_B1, FAST=400000, STREAM=SSD1306_STREAM)
                 
#define SSD1306_I2C_ADDRESS 0x7A                // Dirección de la pantalla 0x78 o 0x7A
#include <SSD1306_OLED.c>                       // Libreria para manejo de pantalla OLED por I2C
                             // Asignamos PIR1 a la dirección del registro PIR1.
/*==========================================================================================================================================
============================================================================================================================================*/
char buffer[30];
int16_t Valor_ADC=0;                            // Variable donde se almacenará el valor de la conversión ADC.
long t;
 int horas;
int minutos;
 int segundos;
/*==========================================================================================================================================
============================================================================================================================================*/
#INT_TIMER0
void TIMER0_isr()
{
 
   t++;
  horas = t / 3600;
  t %= 3600;
  minutos = t / 60;
  segundos = t % 60;
   set_timer0(238);
   
}
  
   
void main()                                     // Función Principal.
{
   setup_oscillator(OSC_8MHZ|OSC_INTRC);  
   setup_adc_ports(AN0);                        // Configuramos el pin AN0 como entrada analógica asociado al pin RA0
   setup_adc(adc_clock_internal);  // Como fuente de reloj para el ADC se utiliza el reloj interno.
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4);
   enable_interrupts(INT_TIMER0);
   enable_interrupts(GLOBAL);
              
   SSD1306_Begin(SSD1306_SWITCHCAPVCC, SSD1306_I2C_ADDRESS);// Inicializa la pantalla OLED
   SSD1306_ClearDisplay();                      // Inicialmente se limpia la pantalla OLED
   SSD1306_Display();
   
   
   while(true)                                  // Bucle infinito.
   {
      set_adc_channel(0);                       // Configuramos el canal 0 como entrada analógica.
      delay_us(7);                              // Retardo de 10 us.
      Valor_ADC=read_adc();                     // Almacenamos e valor de la conversión en la variable.
      float Porcentaje_ADC=Valor_ADC*100.0/1023.0;// Obtenemos el valor en porcentaje. 
      SSD1306_ClearDisplay();                   // Limpia la pantalla OLED// Imprime un texto en la parte superior de la pantalla OLED
      SSD1306_DrawRect(10, 12, 108, 52);        // Dibuja un rectangulo en la pantalla OLED
      sprintf(buffer, "ADC:%0.1f", Porcentaje_ADC);// Convierte el valor entero a una cadena
      SSD1306_DrawText(15, 30, buffer, 2);      // Imprime el valor del porcentaje ADC en la pantalla OLED
      
       sprintf(buffer, "%02d:%02d:%02d", horas, minutos, segundos);
       SSD1306_DrawText(20,1, buffer, 1);  
      SSD1306_Display();
   }
}
 
   
				 
						 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		