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!!
Nein, das "\0" ist die C-Darstellung von Oktal 000, also das Ascii-Zeichen "NUL", mit dem Wert 0, bei dem alle Bits LOW (0) sind.
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
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). Sven
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.
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?
Hm, stimmt natürlich. Dann müsste uns Mister Ju aber erst mal noch erklären wie sein String zum ATMega128 kommt. Also ob er ihn per Terminalprogramm schickt (und welche Einstellung dies hat) oder ob er ein Routine laufen lässt, die wirklich nur die Bytes sendet die er haben will.
> 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
Alt ist es! Hab es gerade getestet. Alt gedrückthalten und danach den ASCII Dezimalcode des Zeichens! Gruß Fred
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]
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
> 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!
@ 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
@ Rufus t. Firefly bitte Ju und Fred sauber auseinander halten! sonst bin ich beleidigt :) Fred
Bitte deine Entschuldigung! Copy Paste habe ich zu schnell gemacht.
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.