Gast
#5219410
Hi! Kurz zu meinem Setup: Ich habe zwei Arduino DUE, die über UART miteinander verbunden sind. Auf beiden DUE läuft eine recht zeitkritische Regelungsaufgabe (Positionsregelung eines Objektes) und ziemlich die selbe Software. Die Loop wird von der DUE Timer lib mit 200-400Hz wiederholt (natürlich immer gleiche Frequenz!), und hat eine Laufzeit von ca. 1ms. In der Loop passiert folgendes: Es werden diverse Sensoren ausgelesen, bisschen was gerechnet und anschließend die neue Stellgröße über CAN ausgegeben. Manchmal werden noch Daten über UART rausgeschaufelt, aber das dauert dank Puffer auch nicht lange. Alles was für die Regelung driekt nötig ist, findet uf einem Controller statt. Jetzt muss ich aber noch Daten wie Temperaturwerte, Ströme, etc. bidirektional zwischen den beiden Controllern übertragen können. Daten insgesamt max. 100byte je Zyklus. Wichtig ist hierfür, dass die Ausführung der Regelschleife nicht unterbrochen wird und das ganze "im Hintergrund" passiert. Es wird auch nicht funktionieren, dass der Master die Daten beim Slave anfragt, da die beiden Loops nicht synchron laufen und beide Controller deshalb zu unterschiedlichen Zeiten beschäftigt sind. Wie würdet ihr das lösen? Ist DMA die richtige Lösung? Wenn ich das richtig verstanden habe, kann ich damit direkt von einem µC auf den Speicher des anderen zugreifen? Viele Grüße und Danke, Mike