Frage vom End Of String "\0"

Gast #912830
Lesenswert?

Hallo,

mache ich gerade eine Parse mit ATmega128. Controller soll jetzt "End of 
String" richtig erkennen. (String ist von Computer)

Habe ich eine Empfehlung von Erfahrener, dass ich "\0" benutzen kann.

Ist die Sonderzeichen '\0' die Zusammensetzung von zwei 7-bit ASCII 
Zeichen (\ und 0)?
Wenn Ja, Dann kann ich "\0" per Tastatur von Computer eingebenorder?

Vielen Dank!!
Gast #912837
Lesenswert?

da es kein "lesbares" Zeichen in einem ASCII-String gibt
wird diere mit Null (chr$(0)) abgeschlossen um das
Ende zu signalisieren.

dh wenn du eine 0 (Null) emfängst ist der String alle.

Gruß Fred
#912864
Lesenswert?

Sven Stefan wrote:
> Ist das bei seriell (COM) auch so? Ich dachte immer da wird 0x0D0A
> gesendet (also Return und Newline, ganz früher auch Wagenrücklauf
> Zeilenschaltung WRZS genannt).

Das ist zuallererst eine reine Vereinbarungssache zwischen
Sender und Empfänger.

Wenn der Sender definiert, dass er als 'String Ende' Kennung
das Zeichen ';' schickt, dann ist für den Empfänger der String
zuende sobald er ein ';' empfängt.

Was du meinst ist die gebräuchliche Definition einer
Zeile: Eine Zeile sind umfasst alle Zeichen bis irgendwann
ein CR/LF oder LF oder CR empfangen wird.

Das kann bereits ein String sein, muss aber nicht.
Niemand sagt, dass in einem String nur eine 'Zeile'
enthalten sein darf.
Gast #912865
Lesenswert?

Vielen Dank!
Ich habe auch in ASCII Tabelle folgende Zeile gesehen:

DEC    HEX    CHARACTER
0   0   NULL

Ich gebe Befehle (ASCII String) von PC nach Mikrocontroller. ATmega128 
leitet  das String weiter. Aber der soll diese NULL (DEC 0) richtig 
erkenen.

kann ich aber jetzt nicht per Tastatur eingeben. Wie mache ich dann 
weiter. Habt ihr noch Idee?
Gast #912873
Lesenswert?

> kann ich aber jetzt nicht per Tastatur eingeben. Wie mache ich dann
> weiter. Habt ihr noch Idee?

eine Null lässt sich glaube über die Tastatur eingeben!

nagelt mich jetzt aber nicht fest

entweder

Alt 0 0 0

oder

AlrGr 0 0 0

Gruß Fred
Gast #912883
Lesenswert?

Um ASCII Zeichen einzugeben / senden kannst Du im Terminal Programm 
einfach [Alt] drücken und gedrückt lassen, den dezimalen ASCII Wert 
eingeben und dann [Alt] loslassen.
Also z.B. [Alt halten]0[Alt loslassen] und schon wurde ein Nullzeichen 
eingegeben. Oder für 9: [Alt halten]57[Alt loslassen]
Gast #912980
Lesenswert?

Hallo Fred
Alt ist es! Hab es gerade getestet.
Alt gedrückthalten und danach den ASCII Dezimalcode des Zeichens!

Eine Kurze Frage habe ich vergessen.
Wie Gebe ich unter Windows solche ASCII Code ein? Also Wie hast du 
getestet?

Gruß
Ju
Persönliche Seite #912994
Lesenswert?

> Hallo Fred
> Alt ist es! Hab es gerade getestet.
> Alt gedrückthalten und danach den ASCII Dezimalcode des Zeichens!
>
> Eine Kurze Frage habe ich vergessen.
> Wie Gebe ich unter Windows solche ASCII Code ein? Also Wie hast du
> getestet?

Äh, genauso, wie Du selbst drei Zeilen weiter oben beschrieben hast:

> Alt gedrückthalten und danach den ASCII Dezimalcode des Zeichens!
Gast #913006
Lesenswert?

@ Ju

nimm den Editor oder Wordpad aus dem Windows Zubehör.

ALT (Taste auf der Tastatur) gedrückthalten und nacheinander

zb 065 eingeben, danach ALT loslassen

dann soltest Du ein großes

"A" sehen!

065 = 0x41 = 0b1000001 = 0o101 = chr$(65) = "A"

Gruß Fred

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren