Gast
#444962
Hallo Leute ich habe mir eine Real Time Clock DS1305 an meinen ATMEGA 8 angeschlossen. Scheint soweit zu funktionieren aber warum zählt die blöde Uhr ab 23:59 weiter also fängt nicht wieder bei 0 an ???
|
Anzeige
|
DS1305
Gast
#444962
Hallo Leute ich habe mir eine Real Time Clock DS1305 an meinen ATMEGA 8 angeschlossen. Scheint soweit zu funktionieren aber warum zählt die blöde Uhr ab 23:59 weiter also fängt nicht wieder bei 0 an ???
Gast
#445037
keiner eine idee ? Ich habe deinen Monstercode mal überflogen. Wo genau brauchst du denn Hilfe? Wo gibt er ne Zeit nach 23:59 aus? Wenn Rita ;) nach der aktuellen Uhrzeit fragt, wird die Funktion time() aufgerufen. Die kann ich aber in deinem Code nicht finden.
Gast
#445107
lol.... na ganz oben kommen erst mal defines und dann die read und write funktionen für die Real time clock und darunter ist die time funtion. mein problem ist folgendes: ich kann über mein serielles "Terminal" die Urzeit einstellen, d.h. Stunden und Minuten. Danch wird mit einem Timer zyklisch die Funktion Time(); aufgerufen sodass die Uhrzeit über die serielle Schrittstelle ausgegeben wird. Die Funktion Time(); liesst die Register der DS1305 aus (hours,minutes,seconds),Das Datum habe ich noch nicht implentiert. Jetzt ist mir aufgefallen dass die Uhr bei 23:59:59 nicht auf 00:00:00 umspringt sondern auf 24:00:00 und nach einer weiteren Stunde aud 25:00:00 usw. Hast du eine Idee ?
Gast
#445200
Hmm... In Ermangelung von Programmierkenntnissen von RTC's kann ich nur behaupten, dass die RTC vielleicht nicht selbstständig umspringt?! Aber das wage ich eher zu bezweifeln. In dem Falls müsstest du dann bei 23:59:59 selber die Uhrzeit auf 00:00:00 stellen. Aber irgendwie finde ich das schwer vorstellbar. Sonst könnt ich mir nur noch vorstellen, dass du aus Versehen in deinen SPI Funktionen das falsche Register ausliest. Aber irgendwie... Hmmm... Ich würde mich erstmal nicht drum kümmern. Erstmal Datumsfunktion implemtieren und dann mal schauen, wann das Datum umspringt. Diese Erkenntnis hilft sicher beim debuggen.
Gast
#445290
ist sie ordnungsgemäß initialisiert 24h Modus ? Das 24 Std Bit berücksichtigt beim lesen ?
Gast
#445334
Hey andreas den DS1305 benutze ich auch grade, BZW. möchte ich ihn benutzen. Hänge aber noch beim aufbau. Kannst du mir vieleicht den schaltplan posten wie du den RTC verdrahtet hast ? das wäre cool Schönen Gruß
Gast
#445718
Also ganz einfach Info: Ich benutze das SPI Interface, und keine Stützbatterie VCC = 5V Quarz = 32.768 kHz PIN 1: NC PIN 16: VCC (Versorgung) PIN 2: NC PIN 15: NC PIN 3: Quarz PIN 14: NC PIN 4: Quarz PIN 13: DOUT (MISO vom ATMEGA) PIN 5: NC PIN 12: DIN (MOSI vom ATMEGA) PIN 6: NC PIN 11: CLK (SCK vom ATMEGA) PIN 7: NC PIN 10: CS (irgendein freier I/O PIN vom ATMEGA) PIN 8: GND PIN 9: VCC (serial mode = SPI )
Gast
#445720
hier ist die Zeichnung
Gast
#445732
da 24 h Bit muss ich doch beim lesen nicht berücksichtigen... ich schreibe die Zeit ins Register und setzte damit das Bit. Danach muss die RTC doch in diesem Modus laufen. Wie und warum soll ich dieses Bit wieder einlesen ???? und vorallem erklär dass nicht warum die RTC falsche Stunden zählt momentan ist sie gerade bei stunde 30 Hallo Andreas, Wenn du das 12h/24h Bit setzt, dann befindet sich die RTC allerdings im 12h-Modus! Stunde 30 sieht so aus, als ob du das AM/PM Bit mit ausliest (was auch richtig ist, da dieses im 24h-Modus auch für die 10er Stelle der Stunde ist). mfg Reinhard
Gast
#446801
Kann man Vcc2 und Vbat einfach so freilassen ? wüssen die nicht auf GND gelegt werden ?
Gast
#447215
Nein müssen Sie nicht , das Problem war echt das 12/24h Bit ;) jetzt funktioniert das ganze einwandfrei. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|