mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tutorial / UART


Autor: Erik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich arbeite mich durch das Tutorial durch...
und bin beim Abschnitt UART hängen geblieben.
Die erste Programm-Übung (Text via AVR and Hyperterminal schicken) geht
problemlos.
Bei die zweiten Übung: uart-receive.asm (Zeichen vom Hyperterminal an
den AVR schicken bleibe ich hängen...
Ich benutze allefürsich den 2313 anstatt des uart-mega8 wie
vorgegeben.
Vielleicht kann mir mal jemand mit der Nase auf meinen Fehler
stossen..!?
habe folgendes gemacht:
.include "...2323..."
.def temp = r16
;stackpointer
    ldi temp, low(ramend)
    out spl, temp
;port D = ausgang
    ldi temp, 0xff
    out ddrd, temp
;baudrate
    ldi temp, 10000000/(9600*16) - 1
    out ubrr, temp
;usrt empfang aktivieren
   sbi ucr, txen
;receiveloop
loop:
     sbis ucr, rxc
     rjmp loop
     in temp, udr
     out portd, temp
     rjmp loop

und nichts tut sich! wo habe ich einen Fehler gemacht? was habe ich
vergessen?
- vom hyperterminal wird nichts angenommen,
- nur die led PD1 leuchtet ständig

Wäre für jeden hinweis dankbar!!!!
Erik.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da ist der fehler
   sbi ucr, txen

du aktivierst das senden, nicht empfangen, senden ist auf pd1, deswegen
leutet das.

im tutorial wird rxen verwendet nicht txen :)

Autor: Erik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oohjeh-ojeh!!! das tut weh!!
 lesen/schreiben sollte man können...
nichtdestotrotz: habe jetzt "sbi ucr, rxen" eingesetzt,
jetzt leuchtet zwar die LED-0
aber das Ergebnis ist dasselbe: nix tut sich!!

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was ist bei dir led0 und wie hast du den rest verkabelt?

Autor: Erik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Problem erkannt! muss nur noch herausfinden warum!???
melde mich später wieder. Danke für Deine Mühe!

Autor: Erik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dachte, Problem wäre meine Schnittstelle.
Darum habe ich die Schaltung (Tutorial/Uart) auf eine Lochrasterplatine
separat nachgebaut (ohne Lötfehler!)
und ohne weitere Zusätze, also gemäss Bild.
allefürsich mit einem 2313 anstatt Mega8.
Programm, wie 28.08 + korrektur 29.08 (TXEN/RXEN).
Egal welche Buchstabe ich über das Hyperterminal eingebe,
an Pins PD2 bis PD6 tut sich nicht.
Pegel bleibt auf low, gemessen gegen Masse.

Text von AVR and Hyperterminal schicken geht.

Ist evtl im Programm noch weiteres zu berücksichtigen
wegen der Änderung Mega8-2313 ??
Im original listing steht auch noch "Frame-Format...usw".
Assemblierung liefert hier "undefined variable".

Irgend eine Idee? oder Anregung/Empfehlung?
Ich steh auf'm Schlauch...
Erik

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da brauchst du beim 2313 nur das

        ; Frame-Format: 8 Bit
        ldi temp, (3<<UCSZ0)
        out UCSRC, temp

keine ahnung ob das daran liegen könnte weil ich icht weiss was da
standardmässig drin ist aber einen versuch ist es wert.

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.