Hallo rweickelt,
leider kann ich zum M4F nichts sagen, weil ich bisher die Arbeit gescheut habe, die erforderlichen Anpassungen beim AD-Wandler zu machen. Mal abgesehen davon, daß der nicht mit der versprochenen Auflösung funktioniert.
Ich kann nur sagen, daß der Due mit 4-Radantrieb an die Grenze stößt. Da ist eine Drehzahlberechnung der einzelnen Räder noch auf einfache, angenäherte Form möglich, aber nicht mehr (zB. Schlupfkontrolle). Es kommt dann zu Abstürzen, die vermutlich von fehlerhaftem timing (Interrupt+Polling) kommen.
Ich gebe Dir Recht, daß die
Arduino-IDE hier eine sehr einfache und leistungsfähige Möglichkeit darstellt, so ein Projekt abzuwickeln und so vielen Usern mit beschränkten Programmierkenntnissen (so wie ich) die Möglichkeit für solche Projekte gibt. Allerdings kommt man mit den neueren Controllern M4F, Teensy und auch
esp32 schnell an die Grenzen der
Arduino-IDE.
Wo ich Dir nicht zustimme, ist Deine Aussage zu Echtzeitsystemen.
Polling, also das Arbeiten mit Zeitschleifen und das Abfragen von Zuständen ist die klassische Art der Echtzeitverarbeitung.
Als (Wir) damals mit Multitasking anfingen, war das im Grunde nichts anderes als Polling, nur das eben der Taskmanager das Polling übernommen und die Zeitscheiben zugewiesen hat. Heute ist das auch nicht anders. Einzig die Komplexität der Controller ist dramatisch gestiegen und so blickt kaum noch einer durch, wie die Zeitabhängigkeiten sind.
Durch Erhöhung der Taktfrequenz gewinnt man wie Du schon sagst Rechenzeit, die man dann mit weiteren Inhalten füllen kann und kann bei der bisherigen Lösung aus Software und IDE bleiben. Durch Multitasking gewinnt man aus meiner Sicht bei gleichem Controller kaum etwas - hängt natürlich von der vorhandenen Qualität des Programms ab. Dafür verliert man wahrscheinlich viele user, die nicht mehr mithalten können.
Da wir ja aber in einem Forum diskutieren, kann/sollte/darf es unterschiedliche Lösungen geben und jeder kann etwas dazu beitragen und sich das für ihn passende raussuchen.
Ich bin im Moment froh, daß mein 4WD seit wenigen Tagen störungsfrei funktioniert und ich meine hunderttausend Programmierfehler, die ich selbst verursacht habe, auch wieder bereinigen konnte.
Meine Controller: Due für Azurit, 1 x
esp32 für Webinterface, 1 x
esp32 für Stepperlenkung (Dekodierung PWM-Signal von RC-Steuerung, Stepping)
Meine möglichen Ziele: Reduzierung der Baugröße durch einfaches PCB, Teensy statt Due, mehr Task-Programmierung für besseres Verständnis/Struktur der Software.
Gruß Fürst Ruprecht