Forum: Mikrocontroller und Digitale Elektronik ATMEGA16 USART-Problem


von R.Janßen (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

ich bekomme bei meinen ATMEGA 16 den USART nicht richtig zum laufen.
Das Beispiel war ursprünglich für den 2313 gedacht und funktionierte
wunderbar(mit Terminalprog tty). Habe für den ATMEGA 16 alles
entsprechend abgeändert. Nach Reset oder Start soll bei Druck auf
Taster 2 des STK 500 ein "Z" gesendet werden. Es werden aber
Leerzeichen gesendet(2 Stück).
Wenn Ihr auch keinen Fehler finden könnt, probiert das Prog bitte mal
bei eurem ATMEGA 16 aus.

Einstellungen: 8 Datenbits,kein Paritätsbit,1 Stopbit

hier noch mal die Initialisierung:


;Subroutine hdw_init
;Die I/O-Ports, und der USART werden initialisiert
;In DDRx   0 --> Input   1 --> Output

hdw_init:  ldi  w,0b11111111  ;Initialisiere Port D
    out  PORTD,w
    ldi  w,0b11110010  ;Datenrichtung Port D
    out  DDRD,w

    ldi  w,0b11111111  ;Initialisiere Port B
    out  PORTB,w
    ldi  w,0b11111111  ;Datenrichtung Port B
    out  DDRB,w

;Ab hier wird das USART initialisiert

uart_init:
    ldi   w,high(baudkonst)
    out  UBRRH,w
    ldi  w,low(baudkonst)  ;Baudrate laden
    out  UBRRL,w



    ldi  w,0b00100000    ;UDRE leer
    out   UCSRA,w

    ldi  w,0b10011000  ;RXCIE,RXEN,TXEN ->1,UCSZ2->0
    out   UCSRB,w

    ldi  w,0b10000110    ;URSEL,8bit Datenwort(UCSZ1,UCSZ2 auf 1)
    out   UCSRC,w



    sei        ;Alle Ints freigeben
    ret

schonmal vielen Dank

mfg
Rob

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.