mikrocontroller.net

Forum: PC-Programmierung Kommunikation zwischen PC und ATMega 8


Autor: Michael Junge (michael-junge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

ich schreibe derzeit auf VB.Net ein Programm zur Messdatenerfassung. Um 
die Daten Hardwaremäßig in den PC zu bekommen, möchte ich sie mit einem 
Mega8 auslesen und dann über rs232 an den PC übertragen. Um 
sicherzustellen, dass der PC nicht abgestürzt ist, sendet der Mega8 jede 
Sekunde einen 5 Stelligen Zahlencode an den PC, dieser sendet den Code 
dann an den Mega8 zurück. Erhält der Mega8 4Sekunden lang keine 
"Antwort" vom PC, wird "Alarm" ausgelöst. Die Kommunikation beider 
Teilnemher (PC und Mega8) habe ich mit dem Terminal getestet und 
sichergestellt, dass jedes für sich richtig funktioniert.
Wenn ich das Programm nun starte, sendet der Mega8 den ersten Code, und 
der PC gibt den Code zurück - beim Mega8 kommt dann allerdings nur Müll 
an?!
Ich habe zur Kontrolle in die Sendeleitung des PC´s einen zweiten PC 
gehängt, um über ein Terminalprogramm "mitzuhören". Der PC sendet auf 
einen vernünftigen Datensatz, beim Mega8 kommt allerdings nicht alles, 
bzw Sonderzeichen an - woran kann das liegen?

Vielen Dank und viele Grüße
Mike

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie fragst du die UART auf dem AVR ab? Besteht die Möglichkeit, dass du 
hier Zeichen verlierst, weil du z.B. ein Polling machst und zuviel Zeit 
in Anwendungsroutinen verbrätst. Bei dem Terminaltest fällt sowas kaum 
auf, weil du rel. langsam sendest. Hast du bereits mit niedrigeren 
Baudraten experimentiert und/oder Delays zwischen den Zeichen auf der PC 
Seite?

Autor: Michael Junge (michael-junge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stefan


Du bist der beste!!!!!! Seit heute Vormittag experimentiere in an dem 
Sch*** rum, und bin nicht ein einziges mal auf die Idee gekommen, die 
Boudrate zu verändern!!! Ich glaub ich hab bereits alles versucht, von 
Delays bis hin zum Handshake zwischen jedem Zeichen, aber die Einfachste 
Lösung ist mir nicht eingefallen. Ich hatte anfangs mal getestet, was 
max geht und mich dann auf 115200 festgelegt - wenn ich das jetzt so 
betrachte, war das wirklich ein bisschen viel ;-)...

VIELEN DANK

Gruß Mike

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur als Referenz, nachdem das Problem ja schon gelöst ist:

Es kommt auch absoluter Blödsinn an, wenn man den MAX232 zwar korrekt 
mit den Kondensatoren beschaltet, aber die Stromversorgung vergisst 
(Pin15/16, oder wars 14/15?).
Es kommt dann zwar was an, aber das ist mehr oder weniger zufällig. So 
geschehen: Gestern. seufz

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.