Ich habe folgenden Code um einen Drehgeber auszuwerten (Wird bei jedem Change des Channels A ausgelöst.):
Code:
Isr_incremental_encoder:
If Phase_b <> Phase_a Then
Decr Ist
Else
Incr Ist
End If
If Dira = 1 Then
If Ist => 1000 Then
Dira = 0
Dirb = 1
End If
End If
If Dirb = 1 Then
If Ist =< 0 Then
Dira = 1
Dirb = 0
End If
End If
Print Ist
Return
das ganze geht auch ne weile gut aber plötzlich springt er auf >10000 Ink hoch und macht nur noch misst.
Auszug aus Protokoll:
508
509
510
511
512
12846
12846
12846
12847
...
an was kann das liegen und wie kann man das Problem am besten beseitigen?
tobi
edit1: ich hab das ganze auch mal ohne die Motoransteuerung getestet sondern den Motor direkt ans netzteil gehängt. Bringt nix - gleiches Problem
edit2: könnte es vllt an der PWM im hintergrund auf timer0 liegen?
Lesezeichen