www.mikrocontroller.net

Forum: PC-Programmierung union in visual basic


Autor: timo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Ich bin hier langsam am verzweifeln. Vielleicht könnt ihr mir ja
helfen.

Ich habe eine Schnittstelle über RS232 zwischen einem ATmega und einem
PC realisiert. Diese funktioniert auch soweit.
Ich möchte nun float-Werte (in VB single-Werte) byte-weise übertragen.
in C ist dieses Vorhaben nun wirklich kein Problem, hier geht es über
eine union.

In VB greife ich auf eine tabelle zu, welche die Floats(Single) Werte
in einer Spalte aufführt. Ich kann aber in VB die 4 Bytes des
single-Wertes nicht extrahieren. Dazu fehlt mir ein Befehl oder die
passsende Idee.

Kann mir vielleicht jemand helfen?

habe schon das gesamte I-Net abgesucht..... und kein Glück gehabt :-(

THX,

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>In VB greife ich auf eine tabelle zu, welche die Floats(Single) Werte
>in einer Spalte aufführt. Ich kann aber in VB die 4 Bytes des
>single-Wertes nicht extrahieren. Dazu fehlt mir ein Befehl oder die
>passsende Idee.

Übertrage sie doch einfach als Text. Also "1.234".

Wer sagt dir dass dein PC und dein ATMega die gleiche Anzahl von Bytes
 haben? Ok. das kann noch sein...
Aber die gleiche Anordnung der Bytes im Speicher? Da wird es aber schon
sehr problematisch.
Wenn du etwas mehr Kontrolle über die Kommunikation haben willst, warum
schreibst du das Kommunikationsmodul auf dem PC nicht in C, als DLL oder
COM-Objekt und die Oberfläche in VB. Dann muss man sich auch keine
Sorgen mehr machen ob man bei Zeichenketten mit 8bit oder 16Bit Zeichen
zu tun hat und kann die einzelnen Bytes bequem wieder zu Zahlen
zusammensetzen. Du kannst dann Events an deine Oberfläche schicken wenn
etwas passiert.
Es mag beim ersten Mal schwieriger sein aber es lohnt sich in jedem
Fall. Der Code wird durch die saubere Trennung zwischen Oberfläche und
Kommunikation wesentlich überischtlicher und leichter zu warten.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VB hat in der .Net-Version die Unterstützung von Unions (unter anderem
Namen) bekommen. Siehe z.B.:

http://www.devx.com/vb2themax/Tip/18825

oder

http://www.microsoft.com/germany/msdn/library/net/...

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.