hier ist entweder die schaltung falsch oder ein teil kaputt, da ist das der falsche lösungsansatz...
wie wär's, wenn Du die schaltung mit der RTC, batterie und einem arduino nochmal auf dem breadboard aufbaust? wenn's geht, den arduino durch den 328er ersetzen und mit einem 5V-netzteil versorgen.
ist ein seltsames phänomen, wenn es reproduzierbar so ist, wie Du zuletzt geschrieben hast.
es funktioniert jetzt einband frei ich hatte eine verbindung zwischen Quarz pin und Vbat. (Auf dem Bild relativ schwer zu sehen.)
Die RTC wird nicht heißt und garnichts.
so wie's aussieht, hattest Du die verbindung auf dem bild vorsichtshalber grün übermalt .
na hauptsache, es geht. jetzt heißt's über den code nachdenken...
gruß stefan
PS.: wie schaut's eigentlich mit Deinem problem mit den schieberegistern aus (mehrmals uploaden und 10sek warten usw.)?
bei dem versuchs Cde ist das gleiche phänomen aufgetreten ich schreibe gerade die Grundsätze des Codes.
Morgen fahre ich zum Baumarkt und besorge mir das Blech und Plexiblas. Denn erst wenn ich die LEDs verdratet habe kann ich sie den Bytes zuordnen.
löte nichts zusammen, bevor Du Dein 9-led-system korrekt zum laufen gebracht hast.
ich mach's mit hours = hours % 12
das ist dieser modulo-operator, von dem ich Dir schonmal geschrieben hab'.
gibt den rest einer division zurück, wenn zb hours 17 ist, ist 17 dividiert durch 12 gleich 1, rest 5, und diese 5 bekommst Du mit modulo zurück.
es geht auch mit einer bit-operation, aber so ist's verständlich.
gruß stefan
EDIT: dazu brauchst Du kein if, weil es auch richtig ist, wenn hours kleiner oder gleich 12 ist.
zb 7 % 12 ergibt 7 (klar: 7 dividiert durch 12 ergibt 0, rest 7).
es funktioniert jetzt einband frei ich hatte eine verbindung zwischen Quarz pin und Vbat. (Auf dem Bild relativ schwer zu sehen.)
Die RTC wird nicht heißt und garnichts.
Liebe grüße,
Valli
Du kannst auch den 12 Stunden Modus im DS1307 setzen. (Bit 6 des Registers 02). Dann wirrd Bit 5 des Registers nicht mehr die 2. Binärstelle der Zehner der Stunden sondern das AM/PM bit).
Jetzt weiß ich nicht welche RTC Bibliothek Du benutzt. Hab aber keine gefunden, die das unterstüzt. Wenn Du neugierig bist hier http://forum.arduino.cc/index.php/topic,17706.0.html ist erklärt, wie man es ohne Bibliothek macht indem man den RTC direkt ansteuert.
Du kannst auch den 12 Stunden Modus im DS1307 setzen. (Bit 6 des Registers 02). Dann wirrd Bit 5 des Registers nicht mehr die 2. Binärstelle der Zehner der Stunden sondern das AM/PM bit).
Achtung:
12 Stunden Uhren laufen von 01:00 bis 12:59
Ausserdem kommt nach 11:59 AM erstmal 12:00 PM, nach 12:59 PM kommt 1:00 PM
( Zumindest echt amerikanische text-basierte Zeitzählung ist nicht einfach modulo 12 )
Achtung:
12 Stunden Uhren laufen von 01:00 bis 12:59
Wußte ich nicht.
Ist dann also falscher Ansatz, da Valli eigentlich nur 12 LED ansteuern muß und nicht 24.
Die Lösung ist dann Modulo 12 oder bei Zahlen über 12 einfach 12 subtrahieren.
Grüße Uwe