kleine Frage, betreibe hier gerade das o.g. Uhrenmodul. Läuft alles, nun bin ich beim Wochentag, wollte ich doch noch mit rein nehmen in die Ausgabe.
Der steht aber auf 1, egal welches Datum ich dort eingebe. Wir der nicht von dem Modul berechnet und nur hoch gezählt?
Fände ich unlogisch, da das Modul ja auch Schaltjahre berücksichtigt... die RTC soll doch genau diese Arbeit abnehmen...oder?
Dazu gehört für mich auch die automatische Berechnung des Wochentages...
Steht auch im Datenblatt auf Seite 12:
"The day-of-week register increments at midnight. Values that correspond to the day of week are user-defined but must be sequential (i.e., if 1 equals Sunday, then 2 equals Monday, and so on)."
Es geht hier um den Wochentag nicht um das Schaltjahr.
Lies einfach nochmal.
Du!
Um zu wissen, ob bspw der 70te Tag des Jahres ein Montag ist, musst du nicht nur wissen welcher Wochentag der erste des Jahres war, sondern auch ob Schaltjahr ist, damit der Montag dann entweder der 5.3 oder nur der 4.3 ist. (Daten nur grob geraten, bin grad zu kränklich zum rechnen, aber am Prinzip ändert sich nichts).
Wie gesagt, es geht um den Wochentag, das SJ macht das Modul, steht dort ja auch geschrieben.
Wie dem auch sei.
Die Wochentagsberechnung habe ich schon mal selbst in c geschrieben, heute kann man das aber sicher an jeder Ecke runterladen... dann gehe ich mal suchen...
Ich bin der Meinung, daß der RTC-Wochentagszähler nur regelmäßig blind von 1-7 zählen muß. Da spielen Schaltjahre und das Datum keine Rolle. Montag folgt Sonntag, das ändert sich nie. Also kann der RTC-Wochentagszähler lustig ohne sich um Anderen zu kümmern, immer brav vor sich hinzählen.
Den musst Du ja wirklich nur ein einziges Mal eingeben, da lohnt sich ein Menupunkt nicht, auch für Zeit und Datum. Habe heute einen Parser geschrieben, der aus einem String der seriellen Schnittstelle die Uhr stellt...
Bei mir stelle ich den Wochentag einmal beim Stellen ein.
Mit Terminal sende ich das Stellkommando:
@hhmmssyymmddw<CRLF> , z.B. @2327302301043<CRLF>, "3" ist für Mittwoch
Nach dem ersten Mal stellen kann man z.B. die Zeit mit einem Teilkommando stellen:
@hhmmss<CRLF>, das Datum und Wochentag wird dann nicht beeinflußt. Man braucht nur so weit eingeben wie man will.
Funktioniert gut genug für mich und erspart die Berechnungen. Solange die RTC BU Zelle nicht kaputt geht, läuft DOW für immer richtig. Mache das schon seit Jahrzehnten so. DOW ist ohnehin für mich nicht wichtig.
Abgesehen davon, ist mir das UNIX Datetime Konzept lieber. Beim STM32F103 z.B. ist die RTC ohnehin ein 32-bit Zähler; finde ich viel bequemer.