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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.