Gast
#502707
Hallo,
ich will von der Echtzeituhr Ds1307 den Wochentag auslesen und als Mo-So
auf einem LCD darstellen.
Dazu benutze ich folgende Funktion:
void readTime(void){
uint8_t wday;
char weekday[8][2] = {"00","Mo","Di","Mi","Do","Fr","Sa","So"};
i2c_start_wait(DS1307+I2C_WRITE);
i2c_write(0x03);
i2c_stop();
i2c_rep_start(DS1307+I2C_READ);
wday = i2c_readNak();
i2c_stop();
lcd_puts(weekday[wday]);
}
Auf dem LCD wir nun aber
MoDiMiDoFrSaSoX
ausgegeben (das X ist ein Feld Datenmüll)
Die i2c und LCD-Routinen sind die vom Fleury und tun problemlos.
Das Datenblatt von 1307 sagt, der Wochentag ist im Bereich von 01-07.
Kann ich diesen nicht direkt als Arrayindex verwenden?
Wie kommt die seltsame Ausgabe zustande?