www.mikrocontroller.net

Forum: Compiler & IDEs UART empfang testen


Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe gerade erst angefangen mit Mikrocontrollern zu "spielen" und 
habe versuche ein UART echo hinzubekommen.  Die initialisierung der UART 
funktioniert soweit (wenn ich einen string mit puts() sende kommt der 
auch im terminal an) aber für das echo muss ich ja erstmal vom PC was 
zum Mikrocontroller senden damit der das dann empfängt und zurücksendet. 
Meine (eventuell etwas blöde) Frage ist jetzt, wie mache ich das? Kann 
ich in einem beliebigen Terminal am PC einfach eine Taste drücken und 
das Zeichen wird dann zum angeschlossenen Mikrocontroller gesendet? Wenn 
nicht, wie sende ich dann etwas vom PC zum Mikrocontroller?

Danke schonmal für eure Tipps

Tom

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, so ist es. Bei WIN ist Hyperterminal dabei, 8 N 1 sowie Baudrate 
einstellen und ausprobieren.

Ansonsten google mal nach Tera Term, sehr gutes freies Terminalprogramm.

Autor: Tom (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke erstmal für die Antwort, es ist also doch wie ich dachte, wenn vom 
uC eine Verbindung zum PC besteht und das was der uC sendet im Terminal 
angezeigt wird, reicht es eine Taste auf der Tastatur zu drücken um 
etwas vom PC zum uC zu senden.

Leider empfängt mein Programm (siehe Anhang) nichts.

Es sendet "test" ans Terminal wenn ich eine Taste drücke, aber ich 
bekomme kein echo von dem was ich vom PC zum uC sende.

Was ich bei diesem Programm außerdem erwarten würde ist das es in der 
while Schleife beim Emfangen "hängen bleibt" bis ein Zeichen kommt. Es 
dürfte also garnicht auf meinen Tastendruck reagieren, tut es aber.

Wäre nett wenn sich das mal jemand ansehen könnte und mir auf die 
Sprünge hilft was ich hier falsch mache.

Vielen Dank schonmal

Tom

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dein
empf=Usart_Rx();
uart_putc(empf);
ist ausserhalb der "while(1)" schleife, da kommt dein programm natürlich 
nie hin.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
blöder Fehler von mir, manchmal sieht man den Wald vor lauter Bäumen 
eben nicht.

Die beiden Zeilen habe ich jetzt mit in die while(1) schleife rein 
genommen.

Jetzt reagiert das Programm schonmal nicht mehr auf den Tastendruck (wie 
erwartet). Leider wird trotzdem nach wie vor nicht das Zeichen was ich 
auf der PC-Tastatur drücke vom uC zurückgesendet. Genauer genommen es 
wird garnichts zurückgesendet, da das senden ja an sich funktioniert 
denke ich das das empfangen aus irgend einem Grund nicht klappt.

Ich hoffe es ist nicht wieder so ein blöder Fehler den ich übersehen 
habe.

Hat jemand eine Idee warum das Empfangen nicht geht?

Tom

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi again,
versuch's doch mit debuggen (single step), dann siehst du ja, wo's 
hängt.
vielleicht hast du was bei der initialisierung vergessen?
kommen signale am rs232-rx pin an (mit 'nem oszi kannstes sehen)
eventuell beispielcodes ansehen, gibt's bestimmt: 
http://www.google.de/search?q=ucsra+udre+udr+filetype%3Ac
sorry, ich kenne deinen controller leider nicht und kann dir keinen 
besseren tip geben.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also an Messtechnik habe ich leider nicht viel da, einen oszi kann ich 
mir nicht leisten, aber ne LED sollte es doch vielleicht auch tun um zu 
sehen ob da überhaupt was ankommt oder?

Der Controller ist ein Atmega8 und der code den ich nutze stammt von 
einem beispiel was ich im netz gefunden habe, nur die variablen habe ich 
umbenannt der rest ist eigentlich kopiert, deswegen versteh ich auch 
nicht warum es nicht geht.

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.