Usando RTCC interno de PIC18F26J50

2

Estoy intentando que el RTCC interno funcione, pero no parece funcionar.

Lo que estoy usando-

  • MikroC pro para PIC
  • utilizando un reloj interno de 8 mhz (INTOSCPLL)
  • Uso de INTRC como fuente de reloj para RTCC

y utilizando el siguiente código:

 void main() {

 char txt[7];

 //Setup RTC
 T1CON.T1OSCEN = 1;
 delay_ms(50);
 RTCCFG.RTCWREN = 1;
 PADCFG1.RTSECSEL1 = 1;
 PADCFG1.RTSECSEL0 = 0;
 RTCCFG.RTCEN = 1;
 RTCCFG.RTCPTR1 = 0;
 RTCCFG.RTCPTR0 = 0;

 //Set analog ports as Digital
 ANCON0 = 0x1F;
 ANCON1 = 0x1F;

 I2C1_Init(400000);
 Oled_Init();
 Oled_FillScreen(0x00);

 while(1){
    IntToStr(RTCVALH, txt);
    Oled_Text(txt,0,2);
    IntToStr(RTCVALL, txt);
    Oled_Text(txt,0,4);
    delay_mS(1000);
 }
}

El RTCVALH y el RTCVALL deberían mostrar minutos y segundos. Pero sus valores no cambian en absoluto. Muestran valores constantes de 56 y 50.

¿Qué pasos me faltan?

    
pregunta Suraj Bhawal

2 respuestas

1

Creo que necesitas configurar RTCCFG.RTCWREN = 0; después de que hayas terminado de escribir en él. La hoja de datos lo menciona en la sección 17.2.7 BLOQUEO DE ESCRITURA

    
respondido por el Bilal
0

Asegúrese de que los bits de configuración para configurar la fuente de reloj del RTC sean correctos. El bit responsable es el bit RTCOSC en el CONFIG3L.

EDIT: RTCWREN no se puede configurar simplemente en uno. Debe seguir la secuencia mencionada en la hoja de datos

    
respondido por el Latchup

Lea otras preguntas en las etiquetas