noch mal Dank an Searcher für die Hinweise!

Diesmal noch eine kostenlose
Bemerkung.
Jeder schreibt sein Programm irgendwie anders als andere und wenn es zur eigenen Zufriedenheit funktioniert, ist alles gut.
Deine Linksroutine würde ich jetzt zB so machen:
Code:
Linksroutine:
if Wert > 1 then Decr Wert
Return
Da wird Wert nur dekrementiert, wenn es notwendig ist. Ob das dann auch wirklich OK ist in Zusammenarbeit mit dem restlichen Programm ist müßte man dann natürlich wieder testen.
Wenn nach dem Then nur eine Anweisung für die If Abfrage folgt, kann man das alles in eine Zeile schreiben und sich das end if sparen. Es darf sogar noch ein else mit einer folgenden Anweisung folgen. Ausprobieren und wenn der Compiler nicht meckert ist es gut.
Bei Deiner
Code:
Linksroutine:
Decr Wert
If Wert <= 1 Then
Wert = 1
End If
Return
wird Wert immer dekrementiert und wenn es notwendig ist auf 1 gesetzt. Das ist mehr Arbeit für den µC und braucht deshalb länger. Man sollte, allgemeine Regel, die Interrupt Routinen von der Laufzeit her so kurz wie möglich halten.
Viel Spaß und Erfolg noch
Gruß
Searcher
Lesezeichen