newsec ist hier nur einfachheitshalber ein byte. Eigentlich sollte es ein bit sein. Es ist nämlich nur ein Fähnchen, welches im Sekundentakt von sectic "hochgezogen" wird.Dein Hauptprogramm durchläuft die Hauptschleife zigmal pro Sekunde, und schaut (ua) ob die Fahne oben ist. Wenn das der Fall ist, holt er die Fahne wieder ein, und behandelt die neue Sekunde (Zeit weiterzählen usw).
zum Wecker:
-Du hast die Weckzeit in Variablen gespeichert
-Du hast einen Taster/Schalter/whatever, der den Wecker scharf macht (-> ein wecker enable flag)
-Du hast einen Taster/Schalter/whatever, der den Wecker entschärft (kann durchaus derselbe sein)
-desweiteren einen Alarm-Ausgang
beim Schärfen des Weckers wird das enable-Flag gesetzt
bei aktueller Zeit = Weckzeit folgt Alarmausgang=enableflag
beim Entschärfen wird das enable-Flag gelöscht, und ein eventuell bereits aktiver Alarm gestoppt.
Das Flag kann dabei direkt das Pin-Register-Bit sein, an dem ein Schalter zum ein und ausschalten hängt...
Nur mal so als Ansatz, wie ich das angehen würde...
zum Wecker:
-Du hast die Weckzeit in Variablen gespeichert
-Du hast einen Taster/Schalter/whatever, der den Wecker scharf macht (-> ein wecker enable flag)
-Du hast einen Taster/Schalter/whatever, der den Wecker entschärft (kann durchaus derselbe sein)
-desweiteren einen Alarm-Ausgang
beim Schärfen des Weckers wird das enable-Flag gesetzt
bei aktueller Zeit = Weckzeit folgt Alarmausgang=enableflag
beim Entschärfen wird das enable-Flag gelöscht, und ein eventuell bereits aktiver Alarm gestoppt.
Das Flag kann dabei direkt das Pin-Register-Bit sein, an dem ein Schalter zum ein und ausschalten hängt...
Nur mal so als Ansatz, wie ich das angehen würde...