Du hast die
Do
Loop
Schleife vergessen.
Dein Programm wird ein mal durchlaufen und dann wars das, sprich der Mikrocontroller prüft ein mal ob das Bit gesetzt ist.
Wenn du einen Interrupt verwendest solltest du den Taster entprellen, da der Mikrocontroller sonst mehrmals in die ISR springt und u.U. bleibt die LED dann aus, weil mit dem letzten Sprung das Bit wieder gelöscht wird.
Siehe hier:
http://www.mikrocontroller.net/articles/Entprellung
Und wenn dann würde ich in der ISR nur ein Bit setzen z.B. so:
Onint0:
Toggle Port_B3_enable
Return
Und im Hauptprogramm dann:
Do
If Port_B3_Enable = 1 then
LED = 1
else
LED = 0
End if
Loop
End
Weil das ist eigtl die schnellste Variante für eine ISR, wenn man in der ISR nur ein Flag setzt oder löscht und dieses Flag dann im Hauptprogramm abfragt.
Bei deiner Anwendung ist das noch nicht kritisch aber solltest du vielleicht im Hinterkopf behalten :=)







Zitieren

Lesezeichen