Hallo inka,
im Moment wüsste ich auch nicht, wie du an sinnvolle Werte kommst. (Ich krame mal bei mir nach einem schnellen Messprogramm)
Du hast ja schon den Ansatz gewählt, dass du einfach versucht hast irgendwelche Werte einzutragen in der myasuro.h.

Ich habe gerade nochmal deine Messwerte aus diesem Post von dir nach Excel geholt. Sie sehen meiner Meinung nach nicht besonders gut aus.
Deine Daten von hier sehen da viel besser aus.

Über ein Ziel hinausschiessen ist beim Asuro nicht möglich . Pech gehabt, du must weiter am Ball bleiben und nach Lösung dieses Problems, für alle die an diesem Thread beteiligt sind, rote Zahnräder mit 22 Löchern machen.

Kannst du mal von deinem letzten Programm (von hier) mal die Datei *.lss posten.
Darin ist dann das komplette Programm in Assembler zu finden. Ich will mal sehen, was für eine Mathematik (char, int, float) in der Funktion Turn() und auch Go() vom Compiler eingesetzt werden. Hier scheint es ja irgendwie Unterschiede zu geben.


@damaltor
irgendwie bringst du mich jetzt aber auf eine Idee.
In der Encoder_Init() ist der Prescaler ja (warum auch immer) auf 128 gesetzt worden. Da die INT-Funktion für den ADC aber in der LIB nur die oberen 8 Bit nutzt, sollte es auf alle Fälle möglich sein den Prescaler zu ändern.
Mindestens 64 ist möglich. Wie oben angegeben ist der ADC-Takt dann ja erst bei 125 kHz
Und da die Genauigkeit ja nur mit 8 Bit genutzt wird, kann man bestimmt auch auf einen Prescaler von 16 mit einer Frequenz von 500 kHz runter-/hochgehen. inka, du kannst nochmal 22 Löcher dazubohren.

Gruß Sternthaler