ArduinoForum.de - Das deutschsprachige Forum rund um den Arduino
For-Loop verschluckt Ausgabe am seriellen Monitor - Druckversion

+- ArduinoForum.de - Das deutschsprachige Forum rund um den Arduino (https://www.arduinoforum.de)
+-- Forum: Arduino-Allgemein (/arduino-Forum-Arduino-Allgemein)
+--- Forum: Programmierung (/arduino-Forum-Programmierung)
+--- Thema: For-Loop verschluckt Ausgabe am seriellen Monitor (/arduino-Thread-For-Loop-verschluckt-Ausgabe-am-seriellen-Monitor)



For-Loop verschluckt Ausgabe am seriellen Monitor - TimeMen - 14.04.2019 17:23

So,
bin auch mal wieder hier...

Mein Problem ist das Folgende und besteht eigentlich aus mehreren.
Ich möchte eine 1090MHz empfangende Selbstbau-Antenne an den UNO, wenn möglich später an einen kleineren Arduino anschließen.
Um den ganzen Hardware-Teil habe ich mir allerdings noch keine Gedanken gemacht, ich möchte erstmal, dass die Hauptfunktionen der Software funktionieren.

Den ganzen Kruscht rund um die Hauptfunktionen lasse ich hier raus, da die Sachen eh noch nicht implementiert sind.
Ich scheitere schon am folgenden Punkt:

Code:
String data = "";

void setup() {
  data = "8D4840D6202CC371C32CE0576098";
  Serial.begin(9600);
}

void loop() {
  for (int i = 0; i <= data.length(); i++) {
    Serial.println(data[i]);
  }
  exit(0);
}

Das ist jetzt ein vereinfachtes Beispiel. Theoretisch sollte im seriellen Monitor ja von oben nach unten der Hex-Part aus der Variable Data stehen. Allerdings wird im seriellen Monitor nur der erste Teil des Strings ausgegeben: 8D4840D6

Woran liegt das? Wenn ich ein delay in die For-Loop einfüge, funktioniert es, allerdings möchte ich keine Verzögerungen durch das delay haben müssen, da die Daten, die ich per Antenne später empfangen möchte, ja nicht warten.

Hoffentlich kann das Kernproblem in dem ganzen Kauderwelsch hier erkannt werden.
LG


RE: For-Loop verschluckt Ausgabe am seriellen Monitor - Hilgi - 14.04.2019 17:38

Moin


was das mit dem exit(0) auch immer sein soll, aber ich wette deine Baudrate ist niedrig beim Serial.begin() und somit verschluckt das exit wahrscheinlich die Ausgabe, entferne das exit(0), wenn du das haben musst -> erklär mal wofür.

Ansonsten würde ggf. ein Serial.flush() in der loop nach dem Serial.print reichen, damit er erstmal sauber ausgibt, was im buffer steht, bevor es weiter geht, bzw. bevor exit(0) das prog beendet [falls es das wirklich tut - hab das beim arduino noch nie gesehen das das einer benutzt] kann der buffer höchstwahrscheinlich nicht ausgegeben werden.


Gruß


RE: For-Loop verschluckt Ausgabe am seriellen Monitor - Tommy56 - 14.04.2019 17:43

exit(0) beendet das gesamte Programm (also main).
Das braucht man auf MC eigentlich nicht wirklich.

Gruß Tommy


RE: For-Loop verschluckt Ausgabe am seriellen Monitor - TimeMen - 14.04.2019 17:50

Tatsache.
Das exit(0) haben wir in der Schule von unserem Lehrer so aufgebürdet bekommen.

Vielen Dank für die Antwort inklusive Erklärung!
Schönen Tag euch,
Jakob


RE: For-Loop verschluckt Ausgabe am seriellen Monitor - Hilgi - 14.04.2019 17:50

Jo, ich kenne das halt nur aus C++ am Rechner, hat das hier überhaupt den gewünschten Effekt?

Weil du eigentlich nicht wirklich sagst, was wäre denn eine Anwendung für das exit(0) beim arduino?


Gruß


RE: For-Loop verschluckt Ausgabe am seriellen Monitor - Tommy56 - 14.04.2019 17:59

(14.04.2019 17:50)Hilgi schrieb:  Weil du eigentlich nicht wirklich sagst, was wäre denn eine Anwendung für das exit(0) beim arduino?
Ich kenne keine, deshalb schrieb ich auch, dass man das auf MC nicht wirklich braucht.

Gruß Tommy