Gast
#686190
Hallo, Ich habe vor eine kleine Schaltuhr mit AVR zu bauen (mega88). Als Zeitgeber dient ein RTC mit I2C und Pufferbatterie. Die Uhr-Abfrage funktioniert bereits, d.h. die Zeit steht im RAM des AVR zur Verfügung (Abfrage jede Sekunde). Die Schaltzeiten (vorerst Stunden und Minuten) und die auszuführende Aktion stehen im EEprom. Mein Problem ist noch die Auswertung der Schaltzeiten. Erster Gedankenansatz war, dies mit aufeinanderfolgenden branches zu lösen: - Stunde der 1. Schaltzeit vergleichen, wenn gleich dann Minute vergleichen, wenn gleich dann Aktion ausführen und nächster Vergleich - Stunde der 2. Schaltzeit vergleichen u.s.w. Das scheint mir aber etwas uneffektiv. Und Problem ist, dass die Anzahl der Schaltzeiten feststehen muss. Ich möchte aber gern, dass ich eine beliebige Anzahl Zeiten (max. 30) in den EEprom schreiben kann, ohne das Programm im Rom zu ändern. Hab schon überlegt, ob man eine indexierte Mehrfachverzweigung mittels ijmp machen könnte, da wäre die Ausführungszeit für jeden vergleich wenigstens nahezu identisch. Geht hier aber nicht, da die Werte in einem weiten Bereich verstreut liegen. Macht es Sinn die Schaltzeiten nach dem Reset erstmal vom EEprom in RAM zu kopieren und dort zu sortieren? Gibt es für so eine Aufgabe evtl. sowas wie ´ne Standart-"Gerüst" oder hat jemand sowas ähnliches gemacht und könnte asm-File "zum abgucken" zur Verfügung stellen? Bin für jede Art Tipp zum Problem dankbar.