Hola MGLSOFT
Probe el ejmplo que me pasaste pero tarda mucho en pasar un segundo.
Luego lo que hice es reducir la pregunta milisegundos == 1000 por milisegundos == 4 pero igualmente adelanda 1 seg por minuto.
Si podes miralo a ver si me estoy confundiendo en algo.
En cuanto a la respuesta de cucaracha voy a buscar el cristal de 32k y luego te comento.
Saludos a todos.
Pablo
#include <16F84A.h>
#use delay (clock=4000000)
#fuses XT,NOWDT
#define INTS_PER_SECOND 250 // (4000000/(4*4*250)) (4*Divisor*Interrupciones)
byte CONST Display2[] = {0b00100000,0b00100001,0b00100010,0b00100011,0b00100100,0b00100101,0b00100110,0b00100111,0b00101000,0b00101001};
byte segundos1; // A running seconds counter
byte int_count; // Number of interrupts left before a second has elapsed
byte milisegundos;
#int_rtcc // This function is called every time
clock_isr() { // the RTCC (timer0) overflows (255->0).
if(--int_count==0) { // per milisecond.
milisegundos++;
if(milisegundos==4) { // per second.
segundos1++;
milisegundos=0;
}
int_count=INTS_PER_SECOND;
}
}
void main(void) {
segundos1 = 0;
milisegundos = 0;
int_count=INTS_PER_SECOND;
set_timer0(0);
setup_counters( RTCC_INTERNAL, RTCC_DIV_4);
enable_interrupts(INT_RTCC);
enable_interrupts(GLOBAL);
// set_tris_b(0x0);
for(;

{
output_b(Display2[segundos1]);
delay_ms(3);
}
}