Forum: Mikrocontroller und Digitale Elektronik Kommunikation über den UART


von Axel Jeromin (Gast)


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

von thkaiser (Gast)


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.

von Stefan Kaldewey (Gast)


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.

von Axel Jeromin (Gast)


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

von Stefan Kaldewey (Gast)


Lesenswert?

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

Gruss Stefan

von pinglocalhost (Gast)


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)

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.