Forum: Mikrocontroller und Digitale Elektronik USART Ausgabe ATMega 162


von Alex (Gast)


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

von A.K. (Gast)


Lesenswert?

Am richtigen Pin gemessen? Immerhin hat das Teil ja 2 USARTs.

UBRR0H (USART#0) und UBRR1L (USART#1) passen nicht recht zusammen.

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.