Forum: Mikrocontroller und Digitale Elektronik UART beim ATMega128A funktioniert nicht


von André M. (killroymenzel)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich habe das Problem dass ich die UART-0 beim ATMega128A nicht 
aktivieren kann.

Wahrscheinlich ist der Fehler so simple - nur ich finde ihn nicht.

Die FuseBits sind:

Low C3
High D9
Lock FF

Wäre nett, wenn Ihr euch den Code mal anschaut.

Danke

Andre

von spess53 (Gast)


Lesenswert?

Hi

>  sts    UBRR0H,accu
>  out    UBRR0L,temp
>  ldi    accu,(1<<UCSZ11)|(1<<UCSZ10)
>  sts    UCSR1C,accu
>  ldi    accu,0x18
>  sts    UCSR1B,accu

Nicht alle USART-Register werden mit sts geladen:

   out UCSR0A,r16
   out UCSR0B,r16
   sts UCSR0C,r16
   sts UBRR0H,r16
   out UBRR0L,r16

MfG Spess

von H.Joachim S. (crazyhorse)


Lesenswert?

>sts    UCSR1C,accu
>sts    UCSR1B,accu

Ich denke, du willst mit UART0 arbeiten?

von André M. (killroymenzel)


Lesenswert?

init:
  ldi     temp,4000000/(19200*16)-1
  ldi    accu,0x00
  sts    UBRR0H,accu
  out    UBRR0L,temp
  ldi    accu,(1<<UCSZ11)|(1<<UCSZ10)
  sts    UCSR0C,accu
  ldi    accu,0x18
  out    UCSR0B,accu

funzt leider immernoch nicht......

Irgendwie habe ich das Gefühl etwas zu vergessen......

von Thomas K. (thomas_k39)


Lesenswert?

1. Du schreibst die Daten ins UDR1 statt ins UDR0

2. Bevor Du ein Zeichen schreibst, solltest Du warten bis das 
UDR-Register frei ist

3. Die Konvention beim Zeilenende ist CR vor LF (13, 10) und nicht 
anders herum.

von H.Joachim S. (crazyhorse)


Lesenswert?

Thomas K. schrieb:
> 1. Du schreibst die Daten ins UDR1 statt ins UDR0

soweit hatte ich gar nicht geschaut :-)

So ist das manchmal mit von irgendwo kopierten Sourcen - kann sinnvoll 
sein. Aber um sie zu benutzen, muss man sie auch lesen und verstehen 
können...

von André M. (killroymenzel)


Lesenswert?

Es funzt endlich......

blöde flüchtigkeitsfehler......


Danke euch allen.....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.