www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DS1305


Autor: Andreas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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 ???

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
keiner eine idee ?

Autor: Henrik J. (henrikj)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: HenrikJ (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stephan (Gast)
Datum:

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

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 )

Autor: Andreas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hier ist die Zeichnung

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Reinhard B. (brainstorm)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian (Gast)
Datum:

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

Autor: Andreas (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.