Forum: Mikrocontroller und Digitale Elektronik Wandlung Hex in ASCII


von Uwe C. (Firma: privat) (olmuk)


Angehängte Dateien:

Lesenswert?

Hallo,

vielleicht kann mir jemand bitte helfen :

Als Anmerkung : Anfänger in Assembler, der sich mit der Anpassung von
vorhandenen Codes sein Ding zusammen bastelt.

Ich möchte gerne 2 Zähler auf den PC übertragen und dort in Profilab
weiterverabeiten. Hat mal funktioniert, allerdings gab es Probleme mit 
dem
Steuerzeichen";" zur Trennung der beiden Zählerwerte.

Man hat mir von meinen Profilab-Usern geraten die Wert in ASCII zu 
wandeln.
Dank Peter Dannegger ( vielen Dank ) mit Seiner 5 Register Lösung 
bekomme ich
einen Wert übersandt, kann ihn aber nicht von dem zweiten Wert trennen.
Also wie kann ich mit einem Trennzeichen die beiden Werte trennen ?

Im ASM ist (noch) nicht die zweite Übergabe der Zähler eingefügt.

Kann mir hier jemand einen Tipp geben? Auch wenn sonst noch etwas
auffällt, bitte kommentieren:

Vielen Dank - Gruß Uwe

von Karl H. (kbuchegg)


Lesenswert?

Uwe Jetzinger schrieb:

> einen Wert übersandt, kann ihn aber nicht von dem zweiten Wert trennen.

  mov    wert, r25
  rcall  serout
  rcall  serout

Ist das Absicht, dass du r25 2mal sendest?

> Also wie kann ich mit einem Trennzeichen die beiden Werte trennen ?

Einfach ein ASCII Zeichen deiner Wahl nach der Zahl schicken.
Sehr beliebt sind ',' oder irgendein sonstiges Sonderzeichen, von dem 
die Wahrscheinlichkeit nicht sehr hoch ist, dass es in Zahlen vorkommt 
(+ und - wären daher eine schlechte Wahl). Warum nimmst du zb nicht 
einfach einen ';'?

  mov    wert, r25
  rcall  serout
  ldi    wert, ';'
  rcall  serout

von Uwe C. (Firma: privat) (olmuk)


Lesenswert?

Das war natürlich keine Absicht - danke!

Muß CR und LF nach allen Werten kommen oder zwischendurch ?

Wert1, Trennzeichen, Wert2, CR, LF oder

Wert1, Trennzeichen, CR, LF, Wert 2, Trennzeichen, CR, LF

von Karl H. (kbuchegg)


Lesenswert?

Uwe Jetzinger schrieb:
> Das war natürlich keine Absicht - danke!
>
> Muß CR und LF nach allen Werten kommen oder zwischendurch ?

Das entscheidest du, bzw. das Programm welches den Text empfängt.

CR LF ist ja nichts anderes als: Jetzt fängt eine neue Zeile an.

Das ist so, wie unsere Vereinbarung, dass nach einem vollständigen Satz 
ein '.' kommt. Das mach ich nur, damit du als Leser mich besser 
verstehts. Denn dann weißt du: Aha, ein neuer Satz beginnt.

Aber ich muss das nicht Kein Mensch kann mich dazu zwingen Satzzeichen 
zu benutzen Ich kann das nach eigenem Gutdünken machen oder auch nicht 
Aber wenn wir beide eine Vereinbrung haben das ich nach jedem Satz und 
auch sonst ein Satzzeichen benutze, dann tust du dir leichter beim 
identifizieren von Sätzen und Satzteilen. Also mach ich das auch.


Alles was du erreichen willst ist, dass das empfangende Programm in

2854190678

die Zahlen 28  541 90 678 wiedererkennen kann.

Ob du das machst indem du schickst

28;541;90;678

oder indem du deinem Gegenüber schickst

28
541
90
678

oder ob du dir etwas ganz anderes ausdenkst, ist im Grunde völlig egal 
und nur eine Vereinbarungssache zwischen dem Programm auf dem µC und dem 
Programm auf dem PC. Nimm das, womit sich der Empfänger (also das 
Programm auf dem PC) am leichtesten tut um die Enizelteile wieder 
rauszufischen.

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.