Da ist noch eine Menge Überflüssgies drin. Die Subs waren Beispiele. Ist da kein Code drin, brauchst Du sie auch nicht. So springt er halt hin und gleich wieder zurück. Möchtest Du das Datum in unserer gewohnten Schreibsweise nutzen, dann am Anfang des Programmes einfach

Code:
Config Date = Dmy , Separator = .
hinzufügen. Das bei deinem vorletzen Code nicht wieder abgeschaltet wurde ist klar, denn mein Beispiel war für minutengenaues Schalten in der Sekunde 0. Außerhalb der Sekunde 0 wurde gar nicht in die Schaltuhr Sub gesprungen. Jetzt fehlt natürlich noch Code, um die Uhr und die Schaltzeiten (Entweder per Taster, Drehencoder, RS232 oder gar Fernbedienung) zu stellen. Du kannst natürlich auch einen DCF-Empfänger anschließen und die ZEiten fest einprogrammieren. Dafür wäre aber eine Überprüfung auf eine gültige Zeit von Vorteil. Die Schaltzeiten lassen sich im EEPROM speichern, wenn du sie veränderbar machen möchtest. Bei deinen Programmierkenntnissen kann auch es auch nicht schaden, wenn du den Watchdog zu Hilfe nimmst. Wird dieser nicht regelmäßig zurückgesetzt, weil das Programm sich verheddert, führt den AVR einen Neustart durch.

Ich denke, da habe ich dir wieder viel Neues genannt. Viel Spaß beim ausprobieren. (Mir macht das immer am meisten Spaß, vor allem, wenn am Ende dann alles so läuft, wie ich es mir vorgestellt habe)

Nur interessehalber: Wie steuerst Du die Geräte an?