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


von Sascha W. (bucky2k)


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!

von Peter (Gast)


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

von Sascha W. (bucky2k)


Lesenswert?

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

von Hannes L. (hannes)


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).

...

von Sascha W. (bucky2k)


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?

von Sascha W. (bucky2k)


Lesenswert?

Keiner was anzumerken oder nen Link mit Beispielen?

von Mike (Gast)


Lesenswert?

Jede Menge Links und jede Menge Beispiele!
www.google.de

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.