Buenas Gente,,, tengo una duda existencial..
estoy haciendo un reloj digital con el pic16f84a con un cristal de 4MHZ
programando en pic c compiler.. porque ASM ni se ni me gusta..
partiendo desde 0 lo que tengo es lo siguiente..
la creacion de la base de tiempo de un segundo con la RTCC
el gran problema parte desde aqui creo yo.. ya que mi reloj ademas de tenerlo ya funcionando.. en forma de prototipo... pasadas 4 hs comienza a retrasarse un par de minutos...
alguien puede decirme porque??? o que esta mal?
#fuses HS,NOWDT,NOPROTECT,PUT
#use delay(clock=4000000)
char contador;
#int_rtcc
void interrupt(void)
{
set_rtcc(6); // interrupciones y recarga el timer
contador++; // Incrementa la variable que cuenta las
if(contador==250) // aqui llego a 1 segundo
{
contador=0;
s++;
}
void main()
{
setup_counters(RTCC_INTERNAL,RTCC_DIV_16);
set_rtcc(6); // Carga el valor del timer0
enable_interrupts(int_rtcc);
enable_interrupts(GLOBAL);
do
{
//lalalal
}while(1);
}
estoy haciendo un reloj digital con el pic16f84a con un cristal de 4MHZ
programando en pic c compiler.. porque ASM ni se ni me gusta..
partiendo desde 0 lo que tengo es lo siguiente..
la creacion de la base de tiempo de un segundo con la RTCC
el gran problema parte desde aqui creo yo.. ya que mi reloj ademas de tenerlo ya funcionando.. en forma de prototipo... pasadas 4 hs comienza a retrasarse un par de minutos...
alguien puede decirme porque??? o que esta mal?
#fuses HS,NOWDT,NOPROTECT,PUT
#use delay(clock=4000000)
char contador;
#int_rtcc
void interrupt(void)
{
set_rtcc(6); // interrupciones y recarga el timer
contador++; // Incrementa la variable que cuenta las
if(contador==250) // aqui llego a 1 segundo
{
contador=0;
s++;
}
void main()
{
setup_counters(RTCC_INTERNAL,RTCC_DIV_16);
set_rtcc(6); // Carga el valor del timer0
enable_interrupts(int_rtcc);
enable_interrupts(GLOBAL);
do
{
//lalalal
}while(1);
}