Würd' mir erst mal die Grundlagen erarbeiten, man sieht am Code dass die fehlen. Timings von 60 Sek über ein Waitms sind ein Unding, dann wildes Gespringe aus der ISR raus in Unterprogramme mit der Chance 'nen Stacküberlauf zu bekommen. Bei der ersten Betätigung des Schalters mit ein wenig Schalterprellen ist das auch sofort passiert - wenn denn der Interrupt überhaupt aktiv wäre. Ist er aber nicht, da der PCINT0-Pin PB0 genutzt werden soll, der Int0 dagegen enabelt wird, welcher aber wiederum keine ISR definiert hat. Sollte dagegen tatsächlich der PCInt0 verwendet werden, so fehlt noch das Aktivieren des betreffenden Pins per PCMSK.
Also ich hätt' gesagt, wirf den Code schnellsten in den Papierkorb, arbeite wenigstens die in Bascom mitgelieferten Beispiele durch, verstehe diese auch und mach' Dir danach ein Konzept.
Diese Konzept benötigt keinen externen Interrupt, statt dessen einen Timer, den man abfragen kann, ob 'ne bestimmte Zeit rum ist.
Die Abfrage einer zeitlich extrem unkritischen Aktion, wie die Abfrage eines manuell betätigten Schalters macht man dann in der Hauptschleife, dafür braucht's ganz sicher keinen Interrupt.
Lesezeichen