Hallo zusammen, wie empfängt denn ein Controller ein Datenwort vom RS232-Port? Also, ich sende über eine Software ein Wort raus (->RS232), z.b. "TEST" Im Controller will ich das auswerten, was ich gesendet habe, also if "test" then usw. Liest der Controller nun das Komplette Wort oder werden nur die einzelnen Zeichen nacheinander eingelesen, also "T" dann "E" "S" "T". Wenn ja, dann muss ich doch sowas wie Variable = variable+neues Zeichen einlesen, um wieder aus das Wort "Test" zu kommen. Ungeachtet dem Syntax, der keiner Sprache angehört, ist mein Gedankengang richtig ?? Danke im voraus fifi
Zweiteres: > oder werden nur die einzelnen Zeichen nacheinander eingelesen, also "T" > dann "E" "S" "T". Dein Controller weiss nichts von 'Wörtern'. Woher soller denn wissen, das nach dem 2. ten 'T' nichts mehr kommt? > Wenn ja, dann muss ich doch sowas wie Variable = variable+neues Zeichen > einlesen, um wieder aus das Wort "Test" zu kommen. Ganz genau.
Grundsätzlich ist der Datentransport zeichenorientiert (putchar bzw. getchar) bzw. zeichenkettenorientiert (puts bzw. gets). Zeichenketten sind dabei durch ein String-Endezeichen (gewöhnlich '\0') abgeschlossen. gets nutzt also wiederholt getc, bis das String-Endezeichen auftritt. Mit den Funktionen scanf und printf kann man den String noch formatieren. In jedem Fall bekommt man einen Pointer auf den String zurück. -if "test" then usw.- Da es sich um Strings handelt, musst du die entsprechenden Funktionen aus der <string.h> Bibliothek nutzen hier z.B. signed char strcmpf(char *str1, char flash *str2)
Vielen Dank für die Hinweise. Ich werd mich mal an die Hardware machen und dann später melden ;o) Grüße fifi
Und vergiss die Funktion gets() gleich wieder. fgets() ist die Funktion die du willst. Ist zwar mühsamer aber sicherer. @Jens gets() darfst du nur erwähnen, wenn du gleichzeitig 3 Kreuze schlägst und im selben Atemzug Verdammnis all jenen androhst, die diese Funktion einsetzen. gets() hat einen schweren Designfehler! Unzählige Programmabstürze und erfolgreiche Hacker-Angriffe gehen auf sein Konto. Immer mit fgets() arbeiten, auch wenn es zunächst mühsamer ist.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.