USART Ausgabe ATMega 162

Gast #152889
Lesenswert?

Hallo..Ich versuche zwanghaft ein Zeichen über das USART eines AtMega162
auszugeben aber es will mir nicht gelingen. Hab mal schnell etwas CODE
geschrieben bei dem ständig das gleiche Zeiche in einer Schleife an die
Schnittstelle augegeben werden soll. Leider tut sich rein gar nichts.
Hab mal mit dem oszi am txd-pin gemessen und musste feststellen das
dort kein signal rauskommt. Was mache ich bloß falsch? Bei anderen
Atmel controllern mit weniger funktionen war die ausgabe über das UART
eigentlich immer recht simpel. Ach und noch was. Wenn ich mein programm
im Avr studio Simuliere, musste ich feststellen das das Zeichen nicht an
das UDR Regsiter übergeben wird.

.nolist
.include "m162def.inc"
.list


;Definitionen
.def reg    =r16
.def signs  =r17


.CSEG
.ORG 0x0000
  rjmp main


main:


ldi reg,LOW(RAMEND)
out SPL,reg
ldi reg,HIGH(RAMEND)
out SPH,reg
ldi reg,0xFF
out DDRB,reg



;SCHNITTSTELLE KONIGURIEREN

clr reg      ; Baudrate 19200bps
out sreg,reg
out UBRR0H, reg
ldi reg,25
out UBRR1L, reg

ldi reg, (1<<URSEL) |  (3<<UCSZ0)
out UCSR1C,reg

ldi reg,  (1<<TXEN)
out UCSR1B, reg


loop:

sbis UCSR1A,UDRE1  ;warten bis Puffer leer ist
rjmp loop


ldi signs, 'A'
out udr,signs     ;Zeichen senden
rjmp loop

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren