www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wert von CR/LF (Carriage Return & Line Feed)


Autor: Kurt Witzler (bascomania)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute.

Ich habe einen String der ich von der UART empfange, daraus möchte ich 
gerne ein Zeichen heruas "destillieren" (es steht immer am gleichen 
Ort.)

Der String sieht so aus:

CR LF A CR LF CR LF CR LF CR LF

Also schreibe ich in meinem Code:

I = Right(I , 9)
I = Left(I , 1)

Doch wieso bekomme ich mein Zeichen nicht? (Also das "A")

welchen Wert hat denn ein CR? Nicht =1?

Lg

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

CR  $0C
LF  $0A

MfG Spess

Autor: Jean Player (fubu1000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Hi
>
> CR  $0C
> LF  $0A
>
> MfG Spess

Ich sage mal das ist falsch. Richtig wäre .....

CR = 0x0D
LF = 0x0A

gruß

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt. 0x0C ist NP (New Page).

Autor: Kurt Witzler (bascomania)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beantwortet ehrlich gesagt meine Frage nicht.

ich brauche übrigens die hex-werte, also 13 und 10

Aber wenn ich das als HEX sende (mit hterm), wie kriegt dann das der MC?

Als einziges Zeichen oder als 2?

Lg

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Tschuldigung. Natürlich $0D.

>ich brauche übrigens die hex-werte, also 13 und 10

Das ist dezimal.

>Aber wenn ich das als HEX sende (mit hterm), wie kriegt dann das der MC?
>Als einziges Zeichen oder als 2?

1 Zeichen. Wenn du es richtig machst.

MfG Spess

Autor: Matthias Larisch (matze88)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dir ist schon klar, was Zahlensysteme sind?

CR ist 13(10), D(16) bzw. 15(8). Alternativ auch einfach 1101(2).

ein LF(gleichbedeutend mit NL) ist 10(10), A(16) oder 12(8). Binär: 
1010(2).

Selbstverständlich kommen diese 2 Zeichen nicht als ein Zeichen an, 
warum sollten sie? Und vor allem WIE sollten sie?

Kleiner Edit:

Bitte schreib doch nächstes mal auch dazu, dass du in Bascom 
programmierst. tut zwar hier direkt nichts zur Sache, aber da du einen 
Codeschnipsel beifügst ist das ganz angemessen. Außerdem kann es auch 
mal Probleme geben, die vielleicht programmiersprachenabhängig anders am 
sinnvollsten gelöst werden.

Autor: Kurt Witzler (bascomania)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay, vielen dank euch allen, doch bin doch noch nicht über die lösung 
gestolpert :$ ^^ ;)

Hier mal der String den ich empfange:

at+cmgr=1<\r><\r><\n>+CMGR: "REC 
READ","XXXXXXXXXX",,"09/08/08,18:09:13+08"<\r><\n>A<\r><\n><\r><\n>OK<\r 
><\n>

So, ich will jetzt hier das A heruashohlen (das Grossgeschriebene 
welches in leserichtung vor dem OK kommt)

Schubst mich bitte n'bisschen;)

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Doch wieso bekomme ich mein Zeichen nicht?

Vielleicht komprimiert der Empfang ein CRLF zu einem \n.

Aber dein Problem ist ein anderes:

Du schreibst Scheiss-Code.
Nämlich Code der nur sonntags vormittags vielleicht funktioniert.
Weil du Voraussetzungen annimmst (der String ist garantiert SO!)
die nicht unbedingt stimmen müssen.

Richtig schreibt man Code, der den empfangenen String Zeichen für 
Zeichen analysiert, und sich Gedanken macht, was er tun soll, wenn etwas 
nicht so ist, wie es sein sollte.

Mir scheint, er sollte analysieren, ob das A am Zeilenanfang steht.
Und als Zeilenende darf er CR und LF annehmen, nicht unbedingt beide 
direkt hintereinander.


Desweiteren hätte BASCOM die MID Funktion um ein Zeichen aus dem String 
zu holen, oder man holt es als Byte

http://www.rn-wissen.de/index.php/Bascom_Strings_und_Bytes

Autor: Kurt Witzler (bascomania)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da sagt man doch danke;)=) (natürlich auch für die Kritik, is zwar nicht 
so schön zum höhren aber es bringt einen weiter;))

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.