Mit Interrupts kann man viel Spaß haben - vorallem wenn man mehrere hat und diese nur zu bestimmten Zeiten aktiviert oder deaktiviert
Als Tip habe ich noch für dich:
-In der Interruptroutine nur ein Bit setzen und dann in der Hauptschleife dieses Bit auswerten und rücksetzen. Das vermeidet viele Probleme weil wenn gerade ein Interrupt ausgeführt wird kein anderer Interrupt greifen kann bzw. nur ein Interrupt mit höherer Priorität greifen kann.
-Ein debouncen des Tasters kannst du dir Sparen, wenn du nach der Auswertung in der Hauptschleife den Interrupt ausschaltest und nach Abarbeitung wieder einschaltest.
Code:
do
If Bit = 1 then
Disable Int 0
Auswertung......
.... Auswertung ende
Reset Bit
Enable Int 0
end if
loop
end
interrupt:
set bit
return
Als Grundregel gilt: Interrupts so kurz wie möglich.
Grüße Stefan
Lesezeichen