Atmega8 - RS232 - ASCII zu DEZIMALWERT

OP #3407116
Hallo zusammen, ein Kollege hat mich gebeten mal "schnell" einen 
RS232-Sniffer zu bauen, der die tatsächlich gesendeten Werte auf der 
RS232 mitliest und als tatsächlichen Dezimalwert ausgibt.

Anbei der Code in Assembler (AVR Studio).

Gruß, Heiko.
Angehängte Dateien:
Was ist bloß immer so schwer daran, einen Quelltext übersetzungsfähig zu 
benennen, also *.c, *.asm usw.?

Du sendest je Byte immer 4 Byte, d.h. Du verlierst sehr schnell Daten.
Du müßtest mindestens mit der 4-fachen Baudrate senden, um wirklich alle 
Daten zu schniffen.
So eignet sich das Programm bestenfalls, wenn die Bytes mit der Hand 
eingetippt werden.
OP
Hallo, ich fang mal oben an :-)

Die Anforderung hier war ganz klar - Dezimale Ausgabe - in der Form, wie 
sie das Programm hergibt. Googeln hat auf die Schnelle nichts gebracht, 
daher dachte ich mir - Poste ich das Ergebnis mal hier hin, da die Frage 
nach einem solchen Programm sehr häufig zu finden ist, aber eher weniger 
Lösungen.
Egal, nun ist es online.

Bzgl. der Benamung der angehangenen Datei.
Was ist an Copy und Paste so schwer?
Ich hätte auch das ganze AVR Studio Projekt posten können..?  ;-)

Bzgl. der GEschwindigkeit, ja, hier könnte man während der Laufzeit für 
die Ausgabe auf eine höhere Geschwindigkeit umschalten.
Für unsere Belange reicht es aber völlig aus.

Ich denke, am interessantesten ist eher die Umwandung des Wertes in 3 
Zeichen. Den Rest kann man ja nach Anforderung "drumherum" schreiben.

Gruß, Heiko.
Heiko Haedicke schrieb:

> Bzgl. der Benamung der angehangenen Datei.
> Was ist an Copy und Paste so schwer?
> Ich hätte auch das ganze AVR Studio Projekt posten können..?  ;-)

Du hättest aber auch einfach das Asm-File (mit der Endung .asm) ganz 
einfach hoch laden können, so wie das tausende vor dir auch gemacht 
haben.
Der Vorteil?
Bei einem *.asm File klinkt dich die Forensoftware ein und schaltet zb 
Syntax Coloring zu.

> Ich denke, am interessantesten ist eher die Umwandung des Wertes in 3
> Zeichen. Den Rest kann man ja nach Anforderung "drumherum" schreiben.

Na ja. Wenn mans braucht. Die Idee der Zerlegung kommt ja auch im 
Tutorial an allen Ecken und Enden vor.
Was mich aber tatsächlich interessieren würde: Wo kommt die 
Aufgabenstellung vor, eine UART Übertragung in Form von Dezimalzahlen 
mitzuprotokollieren? Im Regelfall ist es ja so, dass man da nicht 
einfach nur Bytes rüber schickt und jedes Byte ist für sich alleine 
genommen eine Zahl (zb ein Messwert) darstellt, sondern im Regelfall hat 
man es ja mit einem komplexeren Protokoll zu tun, bei dem die 
'Auswertung' in Dezimal dann eher hinderlich ist.
OP
> Du hättest aber auch einfach das C-File (mit der Endung .c) ganz einfach
> hoch laden können, so wie das tausende vor dir auch gemacht haben.
> Der Vorteil?
> Bei einem *.c File klinkt dich die Forensoftware ein und schaltet zb
> Syntax Coloring zu.

DAS ist ein Grund, da gebe ich Dir recht. Gelobe Besserung!

>> Ich denke, am interessantesten ist eher die Umwandung des Wertes in 3
>> Zeichen. Den Rest kann man ja nach Anforderung "drumherum" schreiben.
>
> Na ja. Wenn mans braucht.

Jep. Ich brauchs nicht :-)

> Was mich tatsächlich interessieren würde: Wo kommt die Aufgabenstellung
> vor, eine UART Übertragung in Form von Dezimalzahlen
> mitzuprotokollieren? Im Regelfall ist es ja so, dass man da nicht
> einfach nur Bytes rüber schickt und jedes Byte ist für sich alleine
> genommen eine Zahl (zb ein Messwert), sondern im Regelfall hat man es ja
> mit einem Protokoll zu tun, bei dem die 'Auswertung' in Dezimal dann
> eher hinderlich ist.

Hier wird irgendeine exotische Hardware angesteuert, die eine ganz 
bestimmte Initialisierung für verschiedene Befehle verlangt die mit 9K6 
zum Gerät gesendet werden.

Diese Befehlskette soll während der Entwicklung überwacht werden.
Diese Sequenz möchte der Entwickler in Dezimal sehen, um mehr geht es 
nicht.
(Firma: xyz)
Heiko Haedicke schrieb:
> Ich denke, am interessantesten ist eher die Umwandung des Wertes in 3
> Zeichen.

Kommt drauf an bei welchem Level in der Maschinencode-Programmierung man 
angelangt ist. Ich meine damit, wieviel Erfahrung jemand damit hat.

Der Umgamg von Binär- und Hexwerten, also die Ausgabe und Nutzung aller 
Grundrechenarten, sollte schon zum Handwerkszeug eines 
Maschinensprache-Programmierers gehören.

Das Wissen dazu kann man sich sicher vielerorts im Netz mit gut 
dokumentierten Beispielen holen. Da schliesse ich mich den Worten von 
Karl-Heinz (kbuchegg) an:

> Na ja. Wenn mans braucht. Die Idee der Zerlegung kommt ja auch im
> Tutorial an allen Ecken und Enden vor.
(Firma: xyz)
Heiko Haedicke schrieb:
> Diese Sequenz möchte der Entwickler in Dezimal sehen, um mehr geht es
> nicht.

Dezimal ist eher unüblich. Hat mich schon zu 8bit-Zeiten genervt, wenn 
derartige Werte vorgegeben wurden (Progs in Magzinen). Heute nervt mich 
auch die RGB-Angabe in dez. (CSS tec.) Ich selbst denke und rechne seit 
vielen Jahren auch in Hex ;-) wenn ich den Compi in MC programmiere. 
Nicht so beim Einkauf ;-)
OP
Natürlich ist die Idee der Zerlegung nicht neu.
Ich behaupte ja auch nicht das Rad neu erfunden zu haben.


Mein Umstieg auf die AVR's ist nicht all zu lange her und ich habe mich 
immer gefreut möglichst vollständige Beispiele zu finden, egal wie 
unnütz diese unterm Strich auch waren/sind.
Heiko Haedicke schrieb:
> Natürlich ist die Idee der Zerlegung nicht neu.
> Ich behaupte ja auch nicht das Rad neu erfunden zu haben.
>
>
> Mein Umstieg auf die AVR's ist nicht all zu lange her und ich habe mich
> immer gefreut möglichst vollständige Beispiele zu finden, egal wie
> unnütz diese unterm Strich auch waren/sind.

Passt schon. Das ist schon ok.

Mich hat nur diese Dezimalitis gewundert. Denn gerade für den 
angepeilten Zweck, Kommandosequenzen zu überwachen, ist das meistens die 
absolut sinnloseste und umständlichste Form, die man sich vorstellen 
kann. Auf der Ebene ist man mit Hex normalerweise am besten bedient. Und 
gerade für den PC gibt es ja dann auch einen schönen Satz an 
Port-Sniffern, die genau das perfekt können.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.