Hallo freunde!
Bin grad am programmieren von meinem kleinen übungsboard und will nun
über die RS232 schnittstelle von meinem µC aus den String
> char string[]="abc\0\r";
schicken. aber aus mir unerfindlichen gründen ist der Backslash am
anderen Ende der übertragung nicht mehr der backslash der er einmal war!
muss ich an dieser stelle nun mit dem ASCII code arbeiten, oder gibts da
noch eine andere möglichkeit?
danke & mfg, wolfi
> schicken. aber aus mir unerfindlichen gründen ist der Backslash am > anderen Ende der übertragung nicht mehr der backslash der er einmal war! > muss ich an dieser stelle nun mit dem ASCII code arbeiten, oder gibts da > noch eine andere möglichkeit? Bist du noch C-Anfänger? probiers doch mal mit > char string[]="abc\\0\\r";
so wie \n die Escape Sequenz für CR (oder war das LF) ist, so wie \t die Escape Sequenz für Tabulator ist so ist \\ die Escape Sequenz für Backslash
Richtig, bin anfänger (-> übungsboard ;-) )! Das '\r' quasi der "Enter"-button auf der tastatur ist, hab ich verstanden nur beim backslash war ich mir nicht sicher! Heißt das jetzt das ich jedes sonderzeichen darstellen kann, wenn ich einfach nur ein '\'-Zeichen davor mache? Wie funktioniert das dann wenn ich '"' (Hochkomma) über rs232 schreiben will? da regt sich ja leider der compiler auf...!
danke für die info!
jetzt hätt ich im anschluss gleich noch eine frage:
wie funktioniert das dann bei tastenkombinationen wie zB:
> Strg+Z
? Ist da die einzige chance diese tastenkombi zu erreichen, wenn ich mit
ascii code arbeite?
Strg+Z wäre dann ja "0x1A", oder?
ja Strg+Z (da Z der 16. Buchstabe im Alphab. ist, ist das wie du richtig sagst 0x1A Das kannst du in einem String schreiben als "\x1A"
danke vielmals für die geduld auch mit anfänger wie mir ;-)! werds gleich ausprobieren!
Wolfgang Supper wrote: > danke vielmals für die geduld auch mit anfänger wie mir ;-)! > > werds gleich ausprobieren! mal sehen. Normalerweise müsste jetzt noch eine Frage kommen :-) Kann aber auch sein, dass du erst in den nächsten Tagen drauf stösst. Das Problem ist so nicht ganz offensichtlich.
kbuchegg wrote:
> Das Problem ist so nicht ganz offensichtlich.
ok, auch auf die gefahr hin, dass ich jetzt keine antwort darauf
erhalten werde, aber mit welchen problemen könnte/müsste ich rechnen
bzw. von welchen problemen im weiteren verlauf wird ausgegangen?
Die Frage muesste lauten: Whoer weiss eigentlich \x wo die Hex Zahl aufhört und wo es mit dem normalen Text wieder weitergeht? Wenn ich einen Hex-Zahl 0x1A in den Text "iiiAABjjjj" einbetten möchte und zwar genau zwischen das letzte A und das erste B "iiiAA\x1ABjjjj" dann interpretiert er anscheinend das B mit zur Hex Zahl dazu. Die Lösung "iiiAA" "\x1A" "Bjjjj" Der Compiler ist verpflichtet mehrere Strings die aufeinander- folgen zu einem einzigen zusammen zu fassen. Zu diesem Zeitpunkt (der Zusammenfassung) ist das \x1A aber bereits bearbeitet worden und es kommt das gewünschte Ergebnis zustande.
ok... erscheint mir logisch! hätte es aber dennoch mit zufall richtig gehabt, weil ich zuerst > sendstr(stringBeliebig); und dann erst: > sendstr("\x1A"); über die rs232 schicke! aber danke trotzdem für die auflösung, jetzt weiß ich fürs nächste mal bescheid!
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.