Forum: Mikrocontroller und Digitale Elektronik Konzept beim Stellen des Datums einer rtc (DS3231)


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Martin S. (mmaddin)


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.

von Stefan W. (dl6dx)


Lesenswert?

Verstehe ich richtig: Du willst den Maximalwert des Monatstags für eine 
Listbox bestimmen?

Die IMHO einfachste Lösung ist das Ableiten aus dem aktuell 
eingestellten Wert des Monats (z.B. Array-Lookup) und im Fall des 
Februars dann den Schaltjahrestest machen (siehe z.B. 
https://de.wikipedia.org/wiki/Schaltjahr#Gregorianischer_Kalender).

von Martin S. (mmaddin)


Lesenswert?

Stefan W. schrieb:
> Du willst den Maximalwert des Monatstags für eine
> Listbox bestimmen?

Jain, ich möchte das ja gerade nicht, denn die rtc kann das 
ja...zumindest müsste sie die Maximalwerte für den Tag ja haben...

von Bauform B. (bauformb)


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.

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.