DS1305

#445050
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 #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 #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
#445941
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.