INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Serial read klappt genau 2 mal, dann hängt der Leonardo.
13.05.2013, 15:40
Beitrag #1
Serial read klappt genau 2 mal, dann hängt der Leonardo.
Hallo zusammen,
ich habe einen sketch geschrieben, um mit dem adafruit motorshield über Serial zwei Schrittmotoren zu steuern. Das klappt soweit auch, ABER: nur 2 mal.
Ich dachte mir zur Fehlerbehebung gliedere ich mal alles was nicht für den Loop lebensnotwendig ist, in andere Funktionen aus.
Und jetzt, wo der Code ziemlich kurz und übersichtlich ist, klappt es immer noch nicht.
Mein Loop sieht so aus:
Code:
void loop() {
  char X_buffer[12];
  char intBuffer[5];
  int incomingpos = 0;
  String content = "";
  char character;
  Serial.println("test")
  while(Serial1.available())
  {
    delay(5);
    character = Serial1.read();
    content.concat(character);
  }
  if (content != "")
  {
    Serial.print("content: ");
    Serial.println(content);
    content.toCharArray(X_buffer, 12);
    intBuffer[0] = X_buffer[10];
    intBuffer[1] = X_buffer[5];
    intBuffer[2] = X_buffer[6];
    intBuffer[3] = X_buffer[7];
    intBuffer[4] = X_buffer[8];
    intBuffer[5] = X_buffer[9];
    incomingpos = atoi(intBuffer);
    Serial.print("incomingpos: ");
    Serial.println(incomingpos);
  }
}

Wenn ich das so laufen lasse, werde ich in der Konsole am PC natürlich mit "test" zugespamt.
Wenn ich den Befehl über Serial1 jetzt zum ersten Mal sende, sehe ich ein leichtes flackern von "test" in der Konsole, woraus ich schließe, dass mir der Arduino das ausspuckt, was ich ihm gesendet habe.
Sobald ich ihm den gleichen String nochmal sende, schreibt er mir
Code:
content: blablabla
incomingpos: 0
und das wars dann.

Könnte das Problem darin begründet sein, dass der Ram voll ist?

eigentlich sollte der die Information die er über Serial1 bekommt, nach der Ausgabe an Serial doch wieder "vergessen" oder nicht?

Gruß André
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  '#' mit Leonardo/Micro [gelöst] Ardusil 10 422 25.11.2018 15:57
Letzter Beitrag: Ardusil
  Serial.h finden ? huber5093 7 467 27.09.2018 15:23
Letzter Beitrag: amithlon
  Anfänger hängt in der Schleife mt14516 2 335 24.09.2018 20:54
Letzter Beitrag: MicroBahner
  Leonardo macht keinen Auto-Reset (je nach Sketch) SebastianM 5 457 01.09.2018 07:49
Letzter Beitrag: amithlon
  Serial auslesen > 64 Byte uk1408 18 2.138 09.03.2018 16:05
Letzter Beitrag: Tommy56
  Wieder mal einer mit serial Probs :-( Bikandajyo 13 1.193 03.03.2018 08:35
Letzter Beitrag: Bikandajyo
  Arduino Software Serial - Delay notwendig? Zipfel1 18 2.559 02.01.2018 11:59
Letzter Beitrag: Tommy56
  Arduino Leonardo Keyboard abschalten aggro600 5 913 25.12.2017 18:40
Letzter Beitrag: Tommy56
  Wartet Serial.begin() auf COM-Port? tollewurst 4 1.226 19.08.2017 09:50
Letzter Beitrag: rkuehle
  Serial.write fraju 5 1.475 23.07.2017 21:57
Letzter Beitrag: Mathias

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste