Tutorial / UART

Gast #112279
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.
Gast #112280
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 :)
Gast #112281
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!!
Gast #112284
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
Gast #112285
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

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.