mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART erfahrenen!


Autor: britneypunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also ich versuche jetzt schon seit 2 Wochen ne verbindung von meinem
ATmega8(in verbindung mit MAX232) zu meinem PC(Win2000) hin zu
bekommen, aber es will einfach nicht klappen.

Ich benutze dazu derzeit das testprog. zum senden eines textes ins
Hyper-Terminal, welches hier auf der Seite veröffentlicht ist. Die
kofiguration der Bautrate und Stopbits simmt auch. Befor ein neues
Zeichen gesendet wird soll ja mit sbis UCSRA,UDRE geprüft werden, ob
das nächste zeichen gesendt werden kann bzw. ob UDR empty ist. Mit
dieser zeile allerdings sendet er granicht's (gemessen). Lasse ich nun
diese Zeile weg und ersetze sie duch eine delay schleife, so sendet der
controller bzw. besser gesagt empfängt das Hyperterminal immer weiter
Euro zeichen.

Hat jemand ne ahnung, ich verzweifele nämlich so langsam daran.

Autor: AbsoluteBeginner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

lade Dir mal das komplette Atmel-Datemblatt für Deinen MC herunter. Da
gibt sowohl ain Assembler als auch in C Beispiele für die
Anfangskonfiguration, das Senden und das Empfangen. Diese Beispiele
gehen 100%ig!

Noch ein Tip: Erst das High-Byte beschreiben, dann das Low-Byte!

Sebastian

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In meinem Bootloaderbeispiel ist eine UART mit drin, probiers mal aus.
Der Empfang ist über den Interrupt mit 256 Bytes gepuffert. Den
CRC-Code kannst Du rausschmeißen oder drinlassen.

getchar ist zum Empfang, putchar zum Senden.
Die beiden auskommentierten Zeilen unter uart_init müssen wieder
eingefügt werden.


Peter

Autor: britneypunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Frequenz muß ich denn für die Berechnung des Wertes für das
Bautratenregister nehmen? Die interne Frequenz oder die
Oszilatorfrequenz des angeschlossenen Quarzes?

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
Immer die mit der der Proz.getaktet wird, also System Clk.

MFG uwe

Autor: xandl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich hab n ähnliches Problem.

Ich empfange auch Daten mit dem Hyperterminal unter Win98se, aber das
sieht dann so aus:

&#128;xxüx<xÀxÀxx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128; 
&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xx 
üx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü 
&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xø 
x<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128; 
&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xx 
üx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü 
&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xø 
x<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128; 
&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xx 
üx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü 
&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xø 
x<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128; 
&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xx 
üx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü 
&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xø 
x<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128; 
&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xx 
üx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü 
&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xø 
x<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128; 
&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xx 
üx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü 
&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xø 
x<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128; 
&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xx 
üx<xÀxü&#128;xøx<&#128;&#128;xx&#128;xøx<&#128;&#128;xx&#128;xxxü&#128; 
xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#12 
8;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128; 
xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀ 
xü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128; 
xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#12 
8;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128; 
xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀ 
xü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128; 
xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#12 
8;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128; 
xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀ 
xü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128; 
xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#12 
8;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128; 
xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀ 
xü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128; 
xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#12 
8;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128; 
xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀ 
xü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128; 
xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#12 
8;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128; 
xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀ 
xü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128; 
xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#12 
8;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128; 
xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀ 
xü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128; 
xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#12 
8;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128; 
xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<xÀxü&#128;xøx<&#128;&#128;xxüx<

Sollte allerdings "Test!" heißen. (Code stammt vom Tutorialteil auf
dieser Seite)
Ich bin mittlerweile ratlos. Ich denk es ist was simples, aber ich komm
ned drauf.

ATmega8515,
4Mhz Quarz,
Baudrate 9600
LT1081 als MAX232 ersatz

Grüße
 Xandl

Autor: Michael Ortenstein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Xandl:

Hi,
das schaut so aus, als ob ein nullterminierter String nicht terminiert
ist, oder der Pointer nicht auf den String zeigt.

Falls Du einen Text so im Codesegment definierst:

Text:
.DB "Test!",0

dann musst Du den Pointer darauf so setzen:

ldi ZH,HIGH(2*Text)
ldi ZL,LOW(2*Text)

vergisst Du dabei das 2*... landest Du irgendwo und die Routine gibt so
lange aus, bis endlich ne Null in der Speicherzelle steht.

So far
Michael

Autor: britneypunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab die LÖSUNG!!!!!

Die ATmega's laufen,wenn sie Fabrik neu sind, voreingestellt immer mit
1MHz und sie ignorieren den angeschlossenen externen Quarz. Dieser mus
mit Pony Prog erst frei geschaltet werden.

Näheres hier:
http://www.elektronik-projekt.de/include.php?path=...

Autor: xandl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
THX @britneypunter

war wirklich so.
so n sch*! aber was solls.
Darauf hätt ich selber kommen können, aber wie gesagt war nur ne
Kleinigkeit.

mfg
Xandl

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.