Forum: Mikrocontroller und Digitale Elektronik zeichenausgabe


von baur (Gast)


Lesenswert?

hallo

ne frage

habe in einer txt datei einen ascii befehl stehen mit <stx>FFHD4<eot>

wenn ich mit copy and paste den befahl in mein compailer mache ändert er 
mir das anfangszeichen und das end zeichen. und gibt es nach dem 
kopailieren soaus. ich möchte es aber nicht so. im ht gibt er mir für 
die zeichen die ich haben möchte den schwarzen smilie  und die schwarze 
raute aus . so sollte das dann sein aber nach dem kompailieren ist das 
nicht mehr so.



bräuchte da mal hilfe

von baur (Gast)


Lesenswert?

noch eine frage

wie sage ich meinem compailer (c) das ein zeichen in hex ist

von dieter (Gast)


Lesenswert?

Was ist ein "compailer" ?

dieter

von Falk (Gast)


Lesenswert?

@baur

>wie sage ich meinem compailer (c) das ein zeichen in hex ist

Wenn dein Comp_i_ler ein C Compiler ist, sollte eine Stringdefinition 
mit Hexwerten so funktionieren.

char my_string[]="Hello HEX \xAB";

wobei ab eine hexadezimale Zahl ist. VORSICHT bei solchen Sachen mitten 
im Text, das kann der Compiler falsch verstehen. Siehe

Beitrag "Sonderzeichen in konstanten String"

MfG
Falk

von Karl H. (kbuchegg)


Lesenswert?

Ich geh mal davon aus, dass du deinen Befehl in einem
String hast.

Also irgendwas in der Form

char Command[] = "<stx>FFHD4<eot>";

<stx> ist im ASCII Code das Steuerzeichen mit dem Code 3
<eot> ist im ASCII Code das Steuerzeichen mit dem Code 4

um Zeichen mit ihrem Code in einen String einzubetten, kann
man ein spezielles Escape Symbol \x benutzen

char Command[] = { "\x03" "FFHD4" "\x04" };

von baur (Gast)


Lesenswert?

re: Karl heinz Buchegger


also das hört sich recht gut an.
habe das auch gleich versucht
nur wenn ich das mit einem printf ausgebe printf("%s\n",Command)
zeigtz es mir die zeichen "\x03" und "\x04" über ht nicht an.


brauche die zeichen aber oder sind die dann unsichtbar irgend wie?

von johnny.m (Gast)


Lesenswert?

Das sind Steuerzeichen, die sind nunmal nicht darstellbar.

von baur (Gast)


Lesenswert?

warum kann ich die dann über einen anderen controller auf dem ht 
sehen????

von kobold (Gast)


Lesenswert?

probiers mal mit sahne

von Karl H. (kbuchegg)


Lesenswert?

baur wrote:
> warum kann ich die dann über einen anderen controller auf dem ht
> sehen????

Du solltest dir mal ein anderes Terminalprogram nehmen, welches
die empfangenen Bytes auch in Hex darstellen kann.

\x03 und \04 sind Steuerzeichen. HT zeigt die nicht an.
Wenn du ein anderes Programm hast, welches dir einen
Smiley und eine Raute im HT hinmalt, dann solltest
du mal überprüfen (mit so einem Hex-Dump Terminal
Program) was dieses Programm nun wirklich über die
serielle Schnittstelle schickt.

Warum gehts dir?
Dass das Programm einen Smiley hinmalt, oder dass es
das Zeichen mit dem Code \x03 schickt?

von Falk (Gast)


Lesenswert?

>baur wrote:
>> warum kann ich die dann über einen anderen controller auf dem ht
>> sehen????

>Du solltest dir mal ein anderes Terminalprogram nehmen, welches
>die empfangenen Bytes auch in Hex darstellen kann.

Ganu. Z.B. Hterm.

http://www.der-hammer.info/terminal/index.htm

MfG
Falk

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
Noch kein Account? Hier anmelden.