Hat jemand schon mal so eine Routine in Assembler programmiert. Muß ja nicht schon wieder das Rad neu erfinden. Gruß Christof P.S. Das habe ich eh schon viel zu oft ;-)
Ja, ja die Kunst dem richtigen Suchbegriff einzugeben. Vielen Dank, werde mir das mal reiziehen
Das muss doch auch etwas eleganter gehen. Ohne 16-Bit Betrachtung und durch 7 in einer Schleife teilen bis zum erbrechen. Mir reicht es auch wenn die Schaltjahrberechnung bis 28.2.2100 funktioniert. Danach sollen sich andere darum Gedanken machen. Die Sommer/Winterzeit-Umstellung ist aber noch ein interresanter Aspekt.
Alex Das sieht garnicht schlecht aus. Ich habe auf der Seite einen Link auf http://de.wikipedia.org/wiki/Wochentagsberechnung gefunden, daraus müsste sich eine effiziente Tabellen und Berechnungsmetode in Assembler bauen lassen.
http://www.mikrocontroller.net/forum/read-1-116742.html#127699 Das Programm kann auch die Anzahl der Tage zwischen 2 "Datums" (Daten) berechnen. Der Wochentag berechnet sich aus dt2(t,m,j) modulo 7 Das könnte man mit Hilfe von Fixed-Point-Arithmetik gut hinbringen. Freue mich, bald Deinen Code zu sehen!
http://de.wikipedia.org/wiki/Zellers_Kongruenz scheint es auch noch zu geben und kommt ohne lookups aus. muss ja nur einmal pro tag berechnet werden, bzw ueberhaupt nur einmal und danach hochgezaehlt werden.
Moin Moin, ich war zu fauel dazu und hab den DS 1307 verbaut, der kennt sich auch mit Schaltjahren aus :-) mfg Oliver
@Oliver "... der kennt sich auch mit Schaltjahren aus :-)" Es könnte ja nicht schaden, mal die Frage zu lesen. Von Schaltjahren war hier nirgends nicht die Rede. @Christof, anbei mal der Wochentag in Assembler Peter
@Peter Ich hatte ja "auch" geschrieben, dass heißt, dass das eine extra Funktion zum Wochentag Problem gewesen wäre. Du hättest aber auch lesen können, er wollte das Rad doch nicht neu erfinden, der DS1307 ist so ein Rad. mfg Oliver
@Oliver, "der DS1307 ist so ein Rad." Ist er eben nicht ! Er kann nicht den Wochentag aus dem Datum berechnen, sondern man muß den Wochentag extra stellen. Er zählt nur den Wochentag parallel mit dem Datum hoch. Peter
@Peter Wo ist das Problem ? Der Code um mal den Tag einzustellen ist sicher kleiner als ihn zu ermitteln, oder sehe ich das als nicht-Assembler Experte falsch ? Ist ja auch Togal, zu meckern gibs immer was ... mfg Oliver
@Oliver, oben sprachst Du doch von Faulheit und das bedeutet für mich, daß mir der MC überflüssige Arbeit abnehmen soll. Und der Threadschreiber sieht das ja auch so, sonst hätte er nicht danach gefragt. Ich finde 16 Assemblerbefehle auch nicht so sonderlich aufwendig. "Ist ja auch Togal, zu meckern gibs immer was ..." Ich wollte nur klarstellen, daß der DS1307 diese Aufgabe nicht lösen kann, daher also völlig fehl am Platze ist. Peter
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.