Mein erstes "Projekt" - Arduino Uno mit RTC-Shield und interruptgesteuerter Ausgabe auf den seriellen Monitor.
Bezüglich Arduino bin ich Neuling. Ansonsten war ich ehemals Servicetechniker im Bereich Elektronik und EDV. Also habe schon ein bischen Ahnung.
Wozu Interrupt? Ganz einfach - der Arduino bleibt zwischen den einzelnen Augaben der Zeitaktualisierungen für andere Zwecke frei. Und die sind auch geplant. Aber vorab erst mal die Basis. Als Interruptgeber verwende ich den Squarewaveausgang des RTC. Dieser kann per Software aktiviert und auf 1 Hertz Frequenz programmiert werden. Es gibt also pro Sekunde einen Interrupt, welcher zur Auslösung der Aktualisierung der Anzeige verwendet wird. Später kommt ein Display dazu. Zur Schaltung: Als nötigen Pull-Up-Widerstand am SQW-Ausgang habe ich 2k2 genommen. Das SQW-Signal geht an den hier nicht bestückten Jumper-Pin der LED L1 und an den Datenpin 2 des Arduino.
Frage: In meinem Sketch habe ich die Zeitausgabe ausserhalb der Interruprbearbeitung in der Hauptschleife plaziert. Das geht einwandfrei. Gefällt mir aber nicht. Wenn ich nun die ganze Uhrabfrage und Ausgabe direkt in die Interruptroutine hänge, blockiert die Ausgabe nach ein paar Zeichen. Hier die Sketche. Der "ds1307.ino" geht, der "ds1307x" blockiert
http://www.gerud.de/Arduino/RTCx/Arduinoclock1.jpg
http://www.gerud.de/Arduino/RTCx/ds1307.ino
http://www.gerud.de/Arduino/RTCx/ds1307x.ino
ds1307.ino (1.98 KB)
ds1307x.ino (1.92 KB)
