www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART bei ATMega8


Autor: Daniela Meier (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jungs,

ich habe vor kurzem versucht, den UART meines ATMega8 zum laufen zu 
bringen. Dazu habe ich folgendes Programm geschrieben (siehe Anhang!). 
Leider ist es mir nicht geglückt, ihn zum laufen zu bringen. Ich habe 
den Quellcode mehrmals schon durchgesehen, aber keinen Fehler gefunden.
Schließlich habe ich versucht, das Programm mit dem Simulator von AVR 
Studio zu simulieren und habe entdeckt, dass ich die Register UBRRH und 
UCSRC, die unter der gleichen Adresse angesprochen werden, nicht mit 
verschiedenen Werten beschreiben kann, was aber notwendig wäre. Nämlich 
UCSRC mit 0x00 und UBRRH mit 0x86. Wer hat schon ähnliche Erfahrungen 
gemacht und kann mir weiterhelfen. Ich weiss keinen Rat mehr!
Ich bin froh für jeglichen Hinweis, weil ich auf dem Gebiet AVR noch 
ziemlich neu bin.

Vielen Dank im Voraus und bis dann!

Daniela

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einige Funktionen des USART werden im AVR Studio nicht korrekt 
simuliert, dieses beherrscht nur die UART Funktionen. Mit welcher 
Taktfrequenz soll der MEGA8 denn laufen. Bei den Direktiven sind auch 
noch einige Fallen drin:
.equ status=0x19 ???

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die neuen Megas haben teilweise Register die nicht im normalen I/O 
Bereich liegen. Die können nicht mit den entsprechenden I/O Befehlen 
angesprochen werden sondern man muß andere Befehle verwednen. Welche 
Register jetzt aber bei welchem Controller mit welchen Befehlen 
angesprochen werden müssen weiß ich jetzt nicht auswendig

Gruß
Markus

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@markus
der MEGA8 zählt noch nicht dazu, dem reichen noch 63 I/O-Register.

Autor: Daniela (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@mmerten

der Mega8 läuft bei mir mit 16 MHz. Das Problem ist halt, dass ich am 
Pin TXD kein Signal bekomme. Meiner Meinung nach kann ich die Register 
UBRRH und UCSRC nicht mit verschiedenen Werten beschreiben. Auch wenn 
ich den Inhalt der beiden Register über den Simulator auslese, sind 
beide Werte stets gleich? Ich weiss nicht, was ich noch tun kann.

Autor: Bernhard T (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel, du must das URSEL bit (MSB) setzen um das UCSRC zu beschreiben. 
Das UBRRH - Register darf ja ohnehinn keine so großen Werte annehmen 
also URSEL = 0.
Gruß Bernhard

Autor: Ruedi B (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Als Ergänzung zum obigen Text sei das Manuel S.148/149 zu empfehlern.

Schreiben:
out UBRRH, 0b0000xxxx
out UCSRC, 0b1xxxxxxx
             x = Bit beliebig
             0 = Bit muss 0 sein
             1 = Bit muss 1 sein

Lesen:
in  R16, UBRRH
in  R16, UCSRC

Um UCSRC zu erhalten muss das I/O Register zweimal hintereinander 
gelesen werden.

Autor: Bernhard T (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry Daniela wegen dem Namen
Gruß Bernhard

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@daniela
Das Problem ist nicht der UART sondern fängt schon hier an:
.equ      status=0x19  ????
Du solltest zuerst einmal der Timer-Routine Aufmerksamkeit schenken, die 
ja wohl "flag gesteuert" im sekundentakt das "Sekunden-Register" über 
den UART versenden soll.

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.