Konzept beim Stellen des Datums einer rtc (DS3231)

OP #7655590
Lesenswert?

Hallo zusammen,

ich nutze die o.g. rtc und Atmega168 (als Arduino nano) - das läuft auch alles soweit. Ich habe ein Menü programmiert in dem man die rtc stellen kann, nur beim Datum frage ich mich, woher bekomme ich den Maximalwert für den Tag in einem Monat x (Schaltjahr/Monat), klar kann ich mir das alles selbst zusammenbasteln, aber dafür habe ich ja eigentlich die rtc...

Wie macht Ihr das?

Es geht mir nicht im Code sondern nur um das Konzept.

Danke.

#7655630
Lesenswert?

Martin S. schrieb:

... Arduino nano ... nur beim Datum frage ich mich, woher bekomme ich den Maximalwert für den Tag in einem Monat x

Gibt es da keine Bibliothek mit mktime() usw.?

Wie macht Ihr das? Es geht mir nicht im Code sondern nur um das Konzept.

Die wichtigsten Regeln:

  • RTC Chips sind dumm, du darfst keine ungültigen Werte schreiben. Die extremste Aussage aus einem Datenblatt: "das Verhalten ist dann undefiniert, aber es gibt keinen Latch-Up"
  • eine RTC kennt keine Zeitumstellung, es funktioniert nur richtig, wenn man UTC benutzt.

Dein Programm muss also alles selber prüfen und berechnen. Ich mache es so, dass ich im Programm nur (time_t) UTC benutze und das für die RTC passend umrechne. Der Aufwand lohnt sich, sobald man mehr macht, als eine Anzeige zu betreiben. Man braucht dann z.B. keine Regeln für die Zeitumstellung, sondern kann die Zeitpunkte der Umstellung in eine Tabelle packen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren