DS1305

Gast #445107
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 ?
Gast #445200
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.
Gast #445718
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 )
Gast #445732
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

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.