Mit I²C kommunizieren
Um uns mit der Uhr zu unterhaltem, müssen wir den Treiber für das konkrete Gerät laden. Raspbian hat einige Treiber bereits integriert, so auch den für unsere Uhr. Wir brauchen also nichts zu installieren sondern können den Treiber gleich laden mit:
modprobe rtc-ds1307
Jetzt legen wir noch eine virtuelle Datei für die Uhr an. Wichtig ist, dass wir hier die richtege Nummer des Busses nehmen also i2c-1:
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
Das wars auch schon und wir können die Zeit auslesen. Unser System weiß mittlerweile, dass eine Uhr (hwclock) angeschlossen ist. Folgender Befehl sollte uns die Uhrzeit ausgeben:
hwclock -r
Beim ersten Abruf wird uns der 1. Januar 2000 angezeigt. Hatten wir den Chip schon mal benutzt wird die Zeit der letzten Nutzung angezeigt.
Nun können wir die Uhr stellen. Wir haben ja die Systemuhrzeit unseres Raspberry Pi. Die ist wenn sie aus dem Web kommt recht genau, ansonsten aber zumindest anders als die ebend abgerufene Zeit. Wir rufen mal die Sytemzeit ab mit:
date
Die Zeit wird angezeigt und wir machen gleich weiter mit dem Stellen:
hwclock -w
Wenn wir jetzt die Zeit wieder abrufen sollte die aktuelle Systemzeit angezeigt werden:
hwclock -r
Problem ist, das ab dem Punkt "Mit I²C kommunizieren" nach einem Neustart alles wieder eingegeben werden muss. Aber auch dafür gibt es eine Lösung.