Problem beim Auslesen der DS1307 RTC

Gast #74494
Lesenswert?

ich hab das problem, dass die sekunden, minuten und stunden bis zu jeder
54. sekunde und minute funktioniert, jedoch springt di anzeige bei
jeder 54. sekunde auf 64 und zählt von dort bis 90.
kann mir jemand sagen, an was das liegt?

mein code

int main(void)
{
  unsigned char time[10];

  lcd_init(LCD_DISP_ON);

  i2c_init(100000);    //100kHz SCL

  for(;;){
    get_time(0xD0, time);
    display(time);
        delay(200);    //wait 200ms
     }
}

void get_time(unsigned char Device, unsigned char *p_time)
{
  i2c_start(Device+I2C_WRITE);
  i2c_write(0x00);

        i2c_rep_start(Device+I2C_READ);

  p_time[2] = i2c_readAck();  //hours
  p_time[1] = i2c_readAck();  //minutes
  p_time[0] = i2c_readAck();  //seconds

        i2c_stop();
}

void  display  (unsigned char *p_time)
{
  unsigned char buffer[10];

  lcd_clrscr();

  itoa(p_time[0],buffer,10);
        if(p_time[0] < 10){
          lcd_puts("0");
        }
        lcd_puts(buffer);

        lcd_puts(":");

  itoa(p_time[1],buffer,10);
        if(p_time[1] < 10){
          lcd_puts("0");
        }
        lcd_puts(buffer);

        lcd_puts(":");

        itoa(p_time[2],buffer,10);
        if(p_time[2] < 10){
          lcd_puts("0");
        }
        lcd_puts(buffer);
}


vielen dank schon mal

gruß,
mike

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren