Hallo,
Zitat Zitat von xrzr Beitrag anzeigen
So habe ich es mir schon fast gedacht.
Habe jetzt eine andere Lösung, so das die UART verbindung entfällt und ich nur einen µC benötige.
So wild ist das eigentlich gar nicht, zudem gibt es dazu Bibliotheken.

Im einfachsten Fall, wird in der ISR jedes Zeichen in einen Puffer geschrieben. Das Hauptprogramm liest dann aus diesem Puffer.
Mit etwas mehr Komfort, macht die ISR dann noch XOFF/XON, stoppt den also Sender bevor der Puffer überläuft.

Komplexere Protokolle packe ich meistens als zustandsgesteuerten Automaten direkt in die ISR.
Der Rechenaufwand in der ISR ist recht klein, da mit jedem Zeichen nur eine einzelne Zustandsänderung berechnet werden muss. Der Vorteil liegt darin, dass sofort auf Fehler reagiert werden kann und das mit dem letzten Empfangenen Zeichen aus das Protokoll abgearbeitet ist, die Reaktionszeit auf eine Meldung wird dadurch kürzer. Die ausgewerteten Daten werden dann an das Hauptprogramm weitergegeben, entweder über globale Variablen und Flags oder einen Puffer.

MfG Peter(TOO)