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
Anfängerfrage zu Serial.read
16.01.2016, 22:40
Beitrag #1
Anfängerfrage zu Serial.read
Hallo.
Ich lerne derzeit den Umgang mit Arduino und arbeite mich durch die Beispiele des Franzis Lernpaketes.

Allerdings stolper ich im Moment bei dem Serial.read befehl. Klar ist das ich durch Eingaben im Terminal mit meinem Programm interagieren kann.

Folgendes Beispiel wird im Buch abgebildet:
Code:
//Arduino Serial Read

#define INLENGTH 20
#define INTERMINATOR 13

char inString[INLENGTH+1];
int inCount;


void setup() {

Serial.begin(9600);
Serial.println("Arduino Serial read");
Serial.println();
Serial.println("Geben Sie einen Text mit maximal 20 Zeichen ein: ");
}

void loop() {
  
inCount=0;

do
{
  while (Serial.available()==0);
  inString[inCount]=Serial.read();
  if(inString[inCount]==INTERMINATOR) break;
}while(++inCount<INLENGTH);

inString[inCount]=0;
Serial.print(inString);


}

Dies ist ein "simples" Echo-Programm welches lediglich meine eingaben im Terminal wieder ausgibt.

Was ich hierbei allerdings nicht verstanden habe:
  • Der Wert "20" bei INLENGTH hat anscheinend keine Wirkung.
  • Die "13" bei INTERMINATOR auch nicht.
  • Wozu "INLENGTH+1?

Wenn ich im Terminal einen Satz mit mehr als 20 Zeichen eingebe wird dieser ohne Probleme wieder ausgegeben.

Lieben Gruß,
E.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.01.2016, 23:01
Beitrag #2
RE: Anfängerfrage zu Serial.read
(16.01.2016 22:40)Erazor schrieb:  Hallo.
Ich lerne derzeit den Umgang mit Arduino und arbeite mich durch die Beispiele des Franzis Lernpaketes.

Allerdings stolper ich im Moment bei dem Serial.read befehl. Klar ist das ich durch Eingaben im Terminal mit meinem Programm interagieren kann.

Folgendes Beispiel wird im Buch abgebildet:
Code:
//Arduino Serial Read

#define INLENGTH 20
#define INTERMINATOR 13

char inString[INLENGTH+1];
int inCount;


void setup() {

Serial.begin(9600);
Serial.println("Arduino Serial read");
Serial.println();
Serial.println("Geben Sie einen Text mit maximal 20 Zeichen ein: ");
}

void loop() {
  
inCount=0;

do
{
  while (Serial.available()==0);
  inString[inCount]=Serial.read();
  if(inString[inCount]==INTERMINATOR) break;
}while(++inCount<INLENGTH);

inString[inCount]=0;
Serial.print(inString);


}

Dies ist ein "simples" Echo-Programm welches lediglich meine eingaben im Terminal wieder ausgibt.

Was ich hierbei allerdings nicht verstanden habe:
  • Der Wert "20" bei INLENGTH hat anscheinend keine Wirkung.
  • Die "13" bei INTERMINATOR auch nicht.
  • Wozu "INLENGTH+1?

Wenn ich im Terminal einen Satz mit mehr als 20 Zeichen eingebe wird dieser ohne Probleme wieder ausgegeben.

Lieben Gruß,
E.



mal so versuchen
#define INTERMINATOR '\n' // bill gates hat nicht überall das sagen (zum glück)
...
}while((++inCount)<INLENGTH); //vorrangregeln

Wozu "INLENGTH+1? // wegen der Nullterminierung
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Serial Output Buffer abfragen BennIY 5 82 05.01.2017 18:51
Letzter Beitrag: Tommy56
  Korrekte serial.print Befehlszeile Franz54 16 503 22.12.2016 18:37
Letzter Beitrag: renid55
  Arduino IDE Serial Plotter futsch? SensorX10 2 179 13.12.2016 13:42
Letzter Beitrag: SensorX10
  Ausgabe Serial Monitor zu viele Byt`s Hannes 0 152 12.11.2016 20:29
Letzter Beitrag: Hannes
  Speicher sparen bei serial.print?? DL1AKP 3 250 02.09.2016 13:32
Letzter Beitrag: hotsystems
  Serial Monitor ASCII 1 schreiben BennIY 11 645 01.08.2016 16:42
Letzter Beitrag: Mathias
  Serial.write Mathias 6 450 29.07.2016 17:06
Letzter Beitrag: Mathias
  Serial Monitor Rudi 5 688 02.06.2016 11:37
Letzter Beitrag: Bitklopfer
  Serial.printeln, Stellen verschwinden Mathias 6 285 27.05.2016 17:44
Letzter Beitrag: Mathias
  Kommunikation Serial Monitor --> Arduino BennIY 7 414 24.05.2016 07:48
Letzter Beitrag: hotsystems

Gehe zu:


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