Ich habe folgenden Code um einen Drehgeber auszuwerten (Wird bei jedem Change des Channels A ausgelöst.):
das ganze geht auch ne weile gut aber plötzlich springt er auf >10000 Ink hoch und macht nur noch misst.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
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