Forum: Compiler & IDEs Problem beim Auslesen der DS1307 RTC


von Mike (Gast)


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

von Mike (Gast)


Lesenswert?

problem hat sich erledigt!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.