Autor Tema: RTCC con mcp79410 y pic18, leer dato  (Leído 1036 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado pablolode

  • PIC16
  • ***
  • Mensajes: 123
RTCC con mcp79410 y pic18, leer dato
« en: 07 de Diciembre de 2015, 14:26:29 »
Hola compañeros ,hace bastante tiempo deje de programar los pics por temas laborales ,ahora mas distendido he arrancado nuevamente¡¡¡
Estoy agregando un rtcc a un pic 18f97j60, me he basado en el ejemplo de aplicacion AN1364 , pero no puedo leer los registros ,estoy debugeando con un Pikit3.
estas son mis funciones:
Al leer el dato en la direccion 0x02(Minutes) , este no la guarda en rtcc_buf = SSP1BUF .
quizas me estoy pasando por alto algo, agrdeceria una observacion, saludos¡¡¡

Código: [Seleccionar]
void WriteRTCCTime(void)
{
    IdleI2C();          //Ensure that I2C Module is Idle
    StartI2C();         //Generate I2C Start Condition
    WriteI2C(0xde);     //Control byte for RTCC
    IdleI2C();

    WriteI2C(0x01);     //Address for Minutes
    IdleI2C();
    WriteI2C(0x45);     //45 Minutes
    IdleI2C();
    WriteI2C(0x71);     //11 Hours 12 Hour Format
    IdleI2C();
    //WriteI2C(0x02);     //Tuesday
    WriteI2C(0x0A);   //Tuesday + VBATEN set
    IdleI2C();
    WriteI2C(0x14);     //14th of the Month
    IdleI2C();
    WriteI2C(0x08);     //August
    IdleI2C();
    WriteI2C(0x12);     //2012
    IdleI2C();
    StopI2C();          //Generate Stop Condition

    //Now write the seconds and Start the Oscillator
    StartI2C();         //Generate I2C Start Condition
    WriteI2C(0xde);     //Control byte for RTCC
    IdleI2C();

    WriteI2C(0x00);     //Address for Seconds Register
    IdleI2C();
    WriteI2C(0xA3);     //Loads Seconds + ST=1
    IdleI2C();
    StopI2C();          //Send Stop Bit
}

void ReadRTCCTime(void)
{
    IdleI2C();          //Ensure that I2C Module is Idle
    StartI2C();         //Generate I2C Start Condition
    WriteI2C(0xDE);     //escribe ,Control byte for RTCC escritura =0xde
     
    IdleI2C();
    WriteI2C(0x02);     // direccion ,Address for Minutes
    RestartI2C();
     
   WriteI2C(0xDF)  ;  //3- send the DEVICE ADDRESS for RTCC READS. =0xdf
   SSP1CON2bits.RCEN = 1   ;      // enable I2C receive mode(RCEN=0 after 8cks by hw)
   Delay10KTCYx(100);
  rtcc_buf = SSP1BUF ; // store read result in the related buffer     
    StopI2C();          //Send Stop Bit
 
}


Desconectado RodrigoAndres

  • PIC16
  • ***
  • Mensajes: 171
Re:RTCC con mcp79410 y pic18, leer dato
« Respuesta #1 en: 09 de Diciembre de 2015, 22:44:24 »
hola a todos. la verdad es que te recomiendo mucho que uses un RTC que se llama el DS1307, ese seguro si te funciona muy bien y sin errores, yo lo probe hace dos meses y funciono de maravilla, es lo que realmente necesitas.


 

anything