Last Updated on 26. März 2023 by sfambach
Ist es möglich Eingaben auf der Seriellen-Schnittstellen per Interrupt abzufangen?
Die Antwort is wohl eher jain, es ist möglich die Serial Event Funktion zu verwenden. Diese wird nach jeder Loop ausgeführt, unterbricht diese aber nicht.
Zweck
- Benutzereingaben über Terminal
- Kommunikations mit anderen Geräten über die Serielle-Schnittstelle
Nötige Bibliotheken
Keine
Programm
Es gibt in der Arduino-Gui die Möglichkeit eine EventFunktion zu verwenden. Diese wird immer nach dem Loop aufgerufen, unterbricht aber keinen laufenden Code.
Damit die Event Funktion nicht blockiert habe ich die WHILE Schleife herausgenommen. Die Funktion ist die gleiche wie vorher, allerdings wird bei jedem Zeichen nochmal die Arbeitsschleife durchlaufen. Dies kann evtl. zu anderen unerwünschten Effekten führen.
Probleme
Ausgabe erfolgt nicht
Darauf achten, dass das verwendete Terminal auf das Zeilenende "new line" eingestellt ist.
Fazit
Kein Interterrupt aber dafür eine Funktionalität die man nutzen kann.
Andere Shorties
Quellen
https://forum.arduino.cc/t/how-to-use-serial-interrupt-in-arduino/335712/29
https://www.arduino.cc/en/Tutorial/BuiltInExamples/SerialEvent
https://forum.arduino.cc/t/interrupt-uber-serielle-schnittstelle/545390
https://forum.arduino.cc/t/interrupt-sobald-daten-in-serial-eingangspuffer-stehen/132916