Holla Mare Crisium,
gut, dass das gute Genesungswünsche waren. Sonst hättest du ja zumindest noch den Schnupfen.
Ich hatte schon Angst, dass dich meine 'Geschwindigkeit', hier etwas umzusetzen, so gelangweilt hat, dass du in einen Dauerschlaf gefallen wärst.

Wie so üblich bei dir, ist es für mich wieder Verständlich geworden, was du beim Schätzen verbessert hast.
Das trifft sich auch ganz gut, da meine letzte Programmversion ja nur eine Version zum testen der Formeln war. Also, wie oben mit jeffrey, besprochen, noch nichts mit Zielvorgaben.
Außerdem hatte ich erst die einfachste Variante der Berechnung ohne Korrekturen benutzt.

Mittlerweile bin ich mir aber ganz sicher, dass die Abweichung zwischen Fahrt und XY-Berechnung nicht an der Formel liegt, sondern vor allem an meinem Testprogramm.

So mache ich da das Rechnen:

- Timerinterrupt
-- Zähler für beide Seite erhöhen.
-- AD-Wandler abwechselnd für die ODO-Scheiben anwerfen.

- AD-Interrupt
-- Wandlerergebnis auf schwarz-/weiss-Wechsel untersuchen.
-- Bei TIK-Erkennung die XY-Berechnung ausführen.
-- Diese Ergebnisse sammeln

- Hauptprogramm
-- Fahre N Tik’s geradeaus.
-- Fahre M Tik’s im Bogen.
-- Stoppe den Asuro, wenn der Datensammler voll ist.
-- Sende die gesammelten Daten auf Tastendruck zum PC.

Die Fahrt vom Asuro kann ich mir schön ansehen.
Somit weiß ich, was ungefähr berechnet sein sollte.

Die berechneten Daten zeigen aber eine recht hohe Abweichung.

Warum:
Ich hatte schon 'vor ein paar Tagen' geschrieben, dass meine Tests, in Bezug auf die Rechenleistung des AVRs, ausreichen sollte. Ich war so auf maximal 80% CPU-Zeit bei voller Asuro-Geschwindigkeit gekommen.
Also lag der Gedanke nahe, die Rechnung direkt im ADC-Interrupt machen zu lassen. Zeit reicht ja schließlich.
Das ist aber ein fataler Fehler, da dann keine anderen Interrupts mehr ausgeführt werden, und somit die Zähler für die beiden Seiten im Timerinterrupt nicht mehr bearbeitet werden. Dadurch wird kein neuer AD-Wandler gestartet, und dadurch gibt es auch keine Erkennung eines weiteren Tik’s.
Also kommt zu den falschen Zählerwerten auch noch hinzu, dass eventuell 2 Tik’s gefahren werden, aber nur als ein TIK in der nächste Berechnung berücksichtigt wird.

--> Alles durcheinander. Dafür ist das Ergebnis erstaunlich gut.

Also schon mal eine neue Lösung ausgedacht.
Berechnung der XY-Werte außerhalb der Interrupts machen. Das gehört sich ja auch so, da man allgemein weiß, dass Interrupts möglichst schnell fertig sein sollen. Und nicht 80% CPU fressen dürfen.

Na ja, so weit bin ich schon. Habe aber noch keine Zeile Code für den Asuro angefasst, da der Code in der Firma eine höhere Priorität hat. (Die Prio ist nicht auf meinem Mist gewachsen. Wirklich nicht!)

Mal sehen, der nächste Urlaub ist geplant. Vielleicht schaffe ich es diesmal nicht die ersten Tage davon in der Firma rumzulungern. Dann kann es evl. mit dem Asuro weitergehen.

Gute Nacht und
viel Grüße vom Sternthaler.