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 auslesen > 64 Byte uk1408 18 1.016 09.03.2018 16:05
Letzter Beitrag: Tommy56
  Wieder mal einer mit serial Probs :-( Bikandajyo 13 548 03.03.2018 08:35
Letzter Beitrag: Bikandajyo
  Anfängerfrage zur Seriellen ausgabe??? merz 7 390 01.03.2018 22:06
Letzter Beitrag: hotsystems
  Arduino Software Serial - Delay notwendig? Zipfel1 18 1.338 02.01.2018 11:59
Letzter Beitrag: Tommy56
  Anfängerfrage-Projekte zusammenfügen aber wie? Opa-Bernd 5 544 19.11.2017 19:33
Letzter Beitrag: Tommy56
  Wartet Serial.begin() auf COM-Port? tollewurst 4 885 19.08.2017 09:50
Letzter Beitrag: rkuehle
  Anfängerfrage - wie die Befehle aus den Libaries in die IDE einbauen ? Stargazer 1 572 30.07.2017 22:11
Letzter Beitrag: Tommy56
  Serial.write fraju 5 1.193 23.07.2017 21:57
Letzter Beitrag: Mathias
  Array mit Serial.read befüllen Gonmaus 4 820 01.05.2017 09:13
Letzter Beitrag: Gonmaus
  serial monitor, Ausgabe übereinander möglich?? silversurfer123 4 719 18.04.2017 19:19
Letzter Beitrag: silversurfer123

Gehe zu:


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