Du hast c) Vergessen:
Den Zeitunterschied (dt) zwischen dem Zeitpunkt, an dem die Prozedur ausgeführt werden soll, und jetzt (
time()) ins Timer-Intervall schreiben. Braucht nur einen Timer-aufruf und nicht einen Ständigen Prozeduraufruf und if-Abfrage