mikrocontroller.net

Forum: PC-Programmierung VB6 Serielle Kommunikation mit uC ( Datenübertragung in Hex)


Autor: Thomas S. (thomass)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe bis jetzt nur uC programmiert und die Sache VB nur in der 
Schule ist schon 4 Jahre her angeschnitten.
Daher bin ich bei VB etc. nicht so fit daher dachte ich mir mit etwas 
Einarbeitung wirds wohl schon klappen doch schon bei der ersten 
Problemstellung scheidere ich nun schon seit Wochen.

Ich habe ein uC programmiert der ein Logdatei schreibt also welche 
Ein-oder Ausgänge wann betädigt wurden etc. desweiteren sind noch 
verschiedene Array programmiert die ich auslesen ändern und wieder 
senden will.
Nun habe ich ein Protokoll zur Übertragung gemacht welches aus Hexwerten 
besteht.

Anzahl Datensätze---Absendeadresse---Zieladresse---Daten oder 
Befehle---n-Daten---CRC

06 03 F4 01 56 43 E5

Mein Problem ist nun folgendes das die MSCOMMx.yyyyy das alles als Ascii 
Zeichen (String) interpretiert.
Da ich jedoch alles in Hex übertrage muss ich die empfangenen Daten in 
das passende Format bringen.
Das Ganze beim senden und empfangen.

Hat wer sowas schon mal gemacht und kann mir seinen Code/Beispielcode 
oder Teile wie es gemacht wird bereitstellen das wäre echt super.

Ich habe zwar gegoogelt aber irgendwie nichts brauchbares gefunden.

Danke im voraus

Thomas

Autor: Stefan C. (jaecko)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn die Daten an einem Terminal wirklich als lesbare Hex-Werte 
ankommen, ist die Umwandlung eigentlich einfach.

Für die ersten beiden Hex-"Ziffern":
val("&H" + Mid(Empfangsstring, 1, 2))

Mid nimmt sich vom String Empfangsstring 2 Zeichen, beginnend ab Stelle 
1.
Prefix "&h" macht aus dem ganzen dann einen Hex-String.
Val wandelt diesen dann in den Dezimal-Zahlenwert.

D.h. für die nächste(n) Stelle(n):
Wert1 = val("&H" + Mid(Empfangsstring, 1, 2))
Wert2 = val("&H" + Mid(Empfangsstring, 3, 2))
Wert3 = val("&H" + Mid(Empfangsstring, 5, 2))

oder eine entsprechende Schleife

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.