www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS232 Protokoll µC <--> Visual Basic


Autor: Sascha W. (bucky2k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe auf einem Atmel ATMega128 inkl 1,5 Zoll Farbdisplay ein 
Programm geschrieben welches möglichst viele Funktionen des µC 
anspricht. Es ging mir darum C zu lernen und die µC Programmierung mit 
Interrupts, etc kennenzulernen. Das Programm ha ein Benutzerinterface 
und nimmt 3000 Werte mit dem ADC von einem Poti in 10 Sekunden auf. 
Diese werdn dann auf dem Display im Koordinatensystem dargestellt.

Nun möchte ich diese Daten an ein VB Programm übersenden können und auch 
vom VB Programm aus alles im µC Steuern können (parallel zum Tastenfeld 
am Controller) sowie das Diagramm hier aufbauen. Ein einfaches 
Übertragen der Daten über die Uart-Library von Peter Fleury habe ich 
bereits, aber ich möchte ein kleines Protokoll entwerfen, insbesondere 
weil das Projekt in einem FH-Modul "Prozessbussysteme" läuft und wenn 
ich schon keinen Bus habe, dann wenigstens eine RS232 Übertragung mit 
kleinem Protkoll.

Hat dazu jemand von euch einen guten Link oder eine Idee wie ich sowas 
mache? Einfach den Controller wie auch VB auf ein "Steuerwort" horchen 
lassen und wenn dieses kommt eben Messung starten, die 3kB senden, und 
dann ne Rückmeldung, etc? Tipps zur Benutzung des Comm-Moduls in VB?

Eine wirkliche Fehlerkontrolle/Korrektur für die Daten muss natürlich 
nicht sein, es soll nicht zu aufwändig werden, da ich sehr wenig Zeit 
habe

Danke!

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz einfach: Öffne vom VisualBasic ein File mit dem Filename "COM1" 
oder "COM2".

Am Besten als "Binary Read Rrite",  dann kannst Du Character weise auf 
die UART schreiben und lesen, als wäre es irgend eine Datei auf der 
Disk! (Halt ohne EOF, falls Deine uC Applikation dies nicht generiert.)

Gruss Peter

Autor: Sascha W. (bucky2k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, zum generellen Datenübertragen nutze ich die MSComm1 funktion von 
VB. Mir ging es eher um das erstellen eines Protokolls...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter wrote:
> Ganz einfach: Öffne vom VisualBasic ein File mit dem Filename "COM1"
> oder "COM2".
>
> Am Besten als "Binary Read Rrite",  dann kannst Du Character weise auf
> die UART schreiben und lesen, als wäre es irgend eine Datei auf der
> Disk! (Halt ohne EOF, falls Deine uC Applikation dies nicht generiert.)

Ups... - So einfach (wie in QBASIC) geht das??

Ich nutze dazu bisher auch das MSCOMM Steuerelement und dessen 
Eigenschaften und Methoden...

Wieder was gelernt, werde ich mal ausprobieren, danke...

Ideen zum Protokoll habe ich jetzt auch nicht. Wenn man die Daten HEX 
codiert (erzeugt aber Overhead), hat man genügend ASCII-Codes zum 
Übertragen von Steuerzeichen (z.B. für Befehle und Antworten).

...

Autor: Sascha W. (bucky2k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal eine Idee:

Ich mache mir ein simples Protokoll in folgender Form:

Es werden immer 12 Bytes übermittelt, unterteilt in:
1 Steuerbyte in dem steht was gerade ankommt und wie es verwendet werden 
soll
10 Datenbytes mit beliebigem Inhalt
1 Byte für Fehlerkontrolle, Anzahl aller zu übermittelnden Bytes, etc...


Im MS Comm Modul stelle ich dann RThreshold und Inputlen auf 12 (Bytes)
Beim OnComm Event verarbeite ich das Ganze dann und fordere entweder den 
nächsten Datensatz an wenn noch nicht beendet oder was auch immer.

Auf Seite des µC das gleiche immer die gesamten 12 Bytes in eine 
Variable und dann auswerten...

Verbesserungsvorschläge? Tipps? Alles Quatsch was ich mir so denke?

Autor: Sascha W. (bucky2k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keiner was anzumerken oder nen Link mit Beispielen?

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jede Menge Links und jede Menge Beispiele!
www.google.de

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.