Ja, da hatte ich mich zu früh gefreut, der Code lief bis auf eine Kleinigkeit, die dann natürlich zum größeren Ärgernis wurde: nested If-Then-If then Else funktionieren nicht ,) Danke für den Timerhinweis - wieder eine Zeile gespart ,)
Die Drehung erfasse ich über Durchgang1 und Durchgang2 - nur wenn vorher die "andere" Seite durchlaufen ist, kommt es zu einer Zählung (so ist zumindest der Plan)... so jetzt Suche ich mal nach einer anderen Schreibweise für meine If thens.....

- - - Aktualisiert - - -

ES GEHT
Das mit der variablen Interruptsfrequenz habe ich nicht gefunden - nur viel über CTC Modi - ich werde also einfach weiter per Hand nachladen

Für alle Interessierten - hier der funktionierende Code....

'#################### Hallsensoren Interruptbehandlung #########################
Irq_hallsensoren:
Timer1 = 51647 ' Timer1 nachladen für ca. 18 Hz

Zustandhallsensor1 = Pine.4
Zustandhallsensor2 = Pine.6


If Zustandhallsensor1alt <> Zustandhallsensor1 Then
If Zustandhallsensor2 = 0 And Zustandhallsensor1 = 1 Then
Durchgang1 = 1
Elseif Zustandhallsensor2 = 0 And Zustandhallsensor1 = 0 And Durchgang2 = 1 Then
Umdrehungen = Umdrehungen - 1
Durchgang2 = 0

'Print #4 , Umdrehungen ; " - " ; Zustandhallsensor1 ; " - " ; Zustandhallsensor2 ' DEBUG
'Print #4 , "D1"

Elseif Zustandhallsensor2 = 0 And Zustandhallsensor1 = 0 And Durchgang2 = 0 Then
Durchgang1 = 0
End If
End If

If Zustandhallsensor2alt <> Zustandhallsensor2 Then
If Zustandhallsensor1 = 0 And Zustandhallsensor2 = 1 Then
Durchgang2 = 1
Elseif Zustandhallsensor1 = 0 And Zustandhallsensor2 = 0 And Durchgang1 = 1 Then
Umdrehungen = Umdrehungen + 1
Durchgang1 = 0

'Print #4 , Umdrehungen ; " - " ; Zustandhallsensor1 ; " - " ; Zustandhallsensor2 ' DEBUG
'Print #4 , "D2"

Elseif Zustandhallsensor1 = 0 And Zustandhallsensor2 = 0 And Durchgang1 = 0 Then
Durchgang2 = 0
End If
End If

Zustandhallsensor1alt = Zustandhallsensor1
Zustandhallsensor2alt = Zustandhallsensor2
Return