Datenaustausch zwischen PC und AVR

Gast #2178426
Lesenswert?

Hi!

ich möchte gerne div. Variablen zwischen einem AVR-Programm (in C 
geschrieben) und dem PC austauschen, damit ich a) mir div. Variablen auf 
dem PC anzeigen lassen und b) diese vom PC aus ändern kann. Ich habe 
hier mal etwas herumgesucht, aber bin irgendwie nicht so recht fündig 
geworden.

Meine Idee wäre, die div. Variablen (integer) in eine struct zu 
verpacken und diese periodisch per RS232 auszutauschen. Ich bin mir 
jetzt allerdings nicht sicher, ob ich wirklich 8bit roh über RS232 
austauschen kann oder ob nur 7bit netto möglich sind (irgendwie habe ich 
noch uuencode im Hinterkopf).

Weiterhin bin ich in PC-Programmierung etwas ausser Übung, hat hier 
jemand irgendeinen Tipp oder Link wie ich das mit Visual C++/C#/Basic an 
eine Mini-GUI kopple?

Danke vorab!
Gerd
Gast #2178435
Lesenswert?

Ich würd die Bedienung des uC über ein Terminalprogramm machen, dann 
musste nur für den uC das Programm anpassen.
So nach dem Motto:
"
Welche Variable aendern?
0: bla = 200
1: buh = 31
...

1
Welcher Wert?
234
"
und wider von vorne :-)
Gast #2178436
Lesenswert?

für ersteres würde ich dir die uart library von peter fleury empfehlen.

klar kannst du 8 bit über uart übertragen, wenn du das entsprechend 
einstellst.

zum 2. kann ich grad nicht so viel sagen, habs nur mal mit java gemacht.

mfg
Gast #2178449
Lesenswert?

dunno.. schrieb:
> klar kannst du 8 bit über uart übertragen, wenn du das entsprechend
> einstellst.

Klar, 8N1. Ich weiß aber nicht mehr, ob hier bestimmte Bytes als 
Sonderkommando ala XON/XOFF interpretiert werden oder ob alles wirklich 
"roh" durchgereicht wird.

@Floh
>Ich würd die Bedienung des uC über ein Terminalprogramm machen, dann
>musste nur für den uC das Programm anpassen.

Da ich mir bestimmte Daten in kurzen Intervallen anschauen will, ist 
eine GUI übersichtlicher.

BTW: Das ganze ist eine selbstgebaute Waschtrocknersteuerung als Ersatz 
für eine kaputte Originalsteuerung. Sozusagen ein 
Waschmaschinen-Barebone ;-)
(Firma: mayer) Persönliche Seite #2178473
Lesenswert?

> Klar, 8N1. Ich weiß aber nicht mehr, ob hier bestimmte Bytes als
> Sonderkommando ala XON/XOFF interpretiert werden oder ob alles wirklich
> "roh" durchgereicht wird.

das haengt stark von den einstellungen auf beiden seiten ab. primaer 
natuerlich auf der empfaegerseite.

aber wenn es integer sind, warum nicht auf ASCII umwandeln und diese 
uebertragen ? das ist auf einer seriellen sicherlich problemloser.

gruss
hans
#2178642
Lesenswert?

Gerd schrieb:
> Meine Idee wäre, die div. Variablen (integer) in eine struct zu
> verpacken und diese periodisch per RS232 auszutauschen. Ich bin mir
> jetzt allerdings nicht sicher, ob ich wirklich 8bit roh über RS232
> austauschen kann

Im Prinzip ja, praktisch aber nein.
Du brauchst eine Synchronisation, damit der andere weiß, welches Byte 
welche Bedeutung hat.
Und beide Compiler müssen den gleichen Aufbau der Struct haben 
(Byte-Order).

Ein einfaches Protokoll ist die Übertragung als Text (Hex-Nibble), die 
Synchronisation erfolgt am Ende durch CR/LF.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren