Komisches Drehgeberverhalten!
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?
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe jetzt meine Hex Datei decompiliert. Im Anhang habe ich meine Basic und Assembler Datei.
Die Basic datei hat ca. 30 effektive zeilen
die assembler datei >200!
kann einer der assemblerprofies die datei mal schnauen?
tausend dank!
Mfg
tobi