Forum: Mikrocontroller und Digitale Elektronik DS1305


von Andreas (Gast)


Angehängte Dateien:

Lesenswert?

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 ???

von Andreas (Gast)


Lesenswert?

keiner eine idee ?

von Henrik J. (henrikj)


Lesenswert?

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.

von Andreas (Gast)


Lesenswert?

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 ?

von HenrikJ (Gast)


Lesenswert?

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.

von Stephan (Gast)


Lesenswert?

ist sie ordnungsgemäß initialisiert 24h Modus ?
Das 24 Std Bit berücksichtigt beim lesen ?

von Sebastian (Gast)


Lesenswert?

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ß

von Andreas (Gast)


Lesenswert?

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 )

von Andreas (Gast)


Angehängte Dateien:

Lesenswert?

hier ist die Zeichnung

von Andreas (Gast)


Lesenswert?

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

von Reinhard B. (brainstorm)


Lesenswert?

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

von Sebastian (Gast)


Lesenswert?

Kann man Vcc2 und Vbat einfach so freilassen ? wüssen die nicht auf GND 
gelegt werden ?

von Andreas (Gast)


Lesenswert?

Nein müssen Sie nicht , das Problem war echt das 12/24h Bit ;) jetzt 
funktioniert das ganze einwandfrei.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.