Ich kann dir hier Tipps geben, aber nicht zu BASIC.

Entprellen kannst du zB so. Jede Methode hat ihre Vor- und Nachteile:
  • - In einem Timer Interrupt zählst du eine Var hoch (auf Überlauf achten).
    - Im INT0 prüfst du die Var. Ist sie kleiner als ein vorgegebener Wert, ändert sich nix an Umdrehung, ansonsten wird Umdrehung weiter gezählt.
    - Danach setzt du die Var zurück auf 0.
  • - Im externen Interrupt (INT0) deaktivierst du INT0, ziehst einen Timer auf und aktiviert diesen und einen dazu gehörenden Interrupt.
    - Im Timer Interrupt deaktivierst du den Timer wieder, setzt INT0-Flag zurück und aktivierst INT0.
  • Du benutzt nicht INT0, sondern schaust in regelmässigen Abständen in einem Timer-Interrupt nach, ob sich was getan hat oder ob INT0-Flag gesetzt ist. INT0 Flag wird auch dann gesetzt, wenn INT0 inaktiv ist. Falls du das Flag verwendest, wieder zurücksetzen.
  • hardwaremässig über ein RC-Glied


Um Codestücke vor Korruption zu schützen, kannst du kurzzeitig Interrupts global deaktivieren. Oder den betreffenden Interrupt, der Probleme machen könnte. Nach dem Reaktivieren der Ints wird dann die ISR ausgeführt weil die IRQ-Flags ja noch gesetzt sind.