Detalles del proyecto: (aunque estoy más interesado en las respuestas teóricas)
- MCU: PIC18F66K22
- IDE: MPLAB X IDE
- Programador: PICKit 3
- Compilador: C18
- Proyecto: Reloj de calendario en tiempo real
He comenzado a hacer que funcione el RTCC interno de mi PIC. Encuentro que hay pequeños tutoriales sobre este tema y ninguno que sea teórico o sin demasiados detalles técnicos (específicos del microcontrolador). La hoja de datos, que es específica para mi microcontrolador, por otro lado, parece carecer de información (¿no está seguro de si es de mi conocimiento?)
¿Cómo configuro el Reloj / Crystal externo y RTCC?
- ¿Tengo que configurar los registros TRIS (Tristate / Datadirection) para los pines de Crystal?
- ¿Tengo que configurar la entrada de Crystal high para que empiece a oscilar? (¿o un pulso corto o algo así?)
-
¿Está la parte debajo de la configuración correcta?
#pragma config RTCOSC = SOSCREF // RTCC Clock Select (RTCC uses SOSC)
-
¿RTSECSEL (RTCC Seconds Clock Output Select) debe configurarse en (10) ?:
RTCC source clock is selected for the RTCC pin (the pin can be LF-INTOSC or SOSC, depending on the RTCOSC (CONFIG3L<1>) bit setting)
? Tengo otro periférico conectado al pin RTCC, ¿se convertirá esto en una salida para elClock Seconds
? (De alguna manera confuso, pero creo que la Selección de salida de reloj se puede usar para seleccionar la entrada?: #)
Para aquellos que no les gusta la teoría
El código de prueba
Tal vez un error rápido se ve aquí. El ensamblaje es de la hoja de datos.
(hoja de datos: "Para que se establezca el bit RTCWREN, solo hay uno ventana de tiempo de ciclo de instrucción permitida entre la secuencia 55h / AA y la configuración de RTCWREN. ")
También #pragma config RTCOSC = SOSCREF // RTCC Clock Select (RTCC uses SOSC)
Y los registros TRISC están configurados.
_asm
movlw 0x55
movwf EECON2,0
movlw 0xAA
movwf EECON2,0
bsf RTCCFG,5,0
_endasm
RtccInitClock();
PADCFG1bits.RTSECSEL1 = 1;
PADCFG1bits.RTSECSEL0 = 0;
RTCCFGbits.RTCEN = 1;
RTCCFGbits.RTCWREN = 0;