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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.