www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kommunikation über den UART


Autor: Axel Jeromin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,
ich bin auf der Suche nach einem Beispielprogramm zu Kommunikation  über 
den UART.
Vom PC werden Zeichen Strings gesendet, welche im AVR (AT90S4433) 
abgespeichert und dann abgearbeitet werden sollen.

Im PC läuft das folgende BASIC Programm:

100 open“com1:9600,N,8,1,DS,CD“as#1
120 print#1,“@0A50,500,300,900":gosub 1000
130 print#1,“@0A20,200,-30,90":gosub 1000
140 stop
1000 if loc(1)<1 then goto 1000
1010 a$=input$(1,1)
1015 if a$=&#8220;0" then return
1020 print &#8221;Karte meldet Fehler : &#8221;;a$
1030 stop


Könnte mir bitte jemand ein Beispielprogramm zum Empfang und Abspeichern 
eines Strings zusenden?
Wie kann das Ende der Übertragung erkannt werden? Die Strings sind 
unterschiedlich lang.

Grüße Axel

Autor: thkaiser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Ende eines Strings erkennt man üblicherweise durch ein CR (=$0D oder 
13), das durch den Print# - Befehl automatisch an jedes Stringende 
gesendet wird.

Autor: Stefan Kaldewey (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich kann dir leider nicht mit einem QBASIC-Quelltext aushelfen, aber du 
kannst ja erstmal das Programm "HyperTerminal" benutzen,um Daten über 
die serielle Schnittstelle zu senden bzw. zu empfangen. Das findest du 
unter:

Start/Programme/Zubehör/HyperTerminal

Falls du Ahnung von Visual Basic hast, kann ich dir
die nötigen Quelltexte schicken.
Daraus kannst du dann dein Programm basteln.

Autor: Axel Jeromin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stefan,
ich suche ein Programmbeispiel für den AVR zum Empfang und zum 
Abspeichern des vom PC gesendeten Strings.
Das Q-Basic Programm habe ich. Es wurde beim Einfügen in die erste 
Nachricht nur falsch dargestellt.

Hoffentlich klappt es jetzt:

100 open;com1:9600,N,8,1,DS,CD ;as#1
120 print#1,;"@0A50,500,300,900":gosub 1000
130 print#1,;"@0A20,200,-30,90":gosub 1000
140 stop
1000 if loc(1)<1 then goto 1000
1010 a$=input$(1,1)
1015 if a$="0" then return
1020 print Karte meldet Fehler : ;a$
1030 stop


Grüße Axel

Autor: Stefan Kaldewey (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
alles klar! Ich dachte du brauchst ein besseres Programm
um zu kontrollieren was der AVR sendet.

Gruss Stefan

Autor: pinglocalhost (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi. Ich versuche auch zur Zeit, so ein Terminalprogramm zu schreiben
(Visual Basic). Das mit dem Senden von PC nach µC ist kein Problem.
Aber das Auswerten Empfangener, bestimmter, Zeichenketten ist das
Problem.. Wenn der µC z.B. die Zahl "1" sendet, soll sich eine
Shape-Farbe verändern. (Nur so als Test) Oder irgendwas anderes
"tun".

Danke

pingLo

P.S: Ich verwende MSComm (Steuerelement)

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.