Forum: Mikrocontroller und Digitale Elektronik UART


von Andy (Gast)


Lesenswert?

Hallo!
Hab gerade mit einem 8515 das UART ausprobiert. Hab das Beispiel aus dem 
Tutorial rauskopiert und etwas umgeschrieben. Aber ich krieg im 
Hyperterminal immer nur TTTTTTTTTTTTTTT ...

Also irgendwie werden die anderen Buchstaben nicht übertragen.

Hier mein Programm: Wo könne der Fehler sein ??

.include "8515def.inc"         ;ABGEÄNDERT

.def temp = r16

ldi temp, RAMEND
out SPL, temp

sbi UCR,TXEN                 ;ABGEÄNDERT
ldi temp,4000000/(9600*16)-1   ;Baudrate 9600 einstellen
out UBRR,temp

loop:
ldi temp, 'T'
rcall serout       ;Unterprogramm aufrufen
ldi temp, 'e'
rcall serout       ;Unterprogramm aufrufen
ldi temp, 's'
rcall serout       ;Unterprogramm aufrufen
ldi temp, 't'
rcall serout       ;Unterprogramm aufrufen
ldi temp, '!'
rcall serout       ;Unterprogramm aufrufen
ldi temp, 10
rcall serout       ;Unterprogramm aufrufen
ldi temp, 13
rcall serout       ;Unterprogramm aufrufen
rjmp loop          ;zu loop springen

serout:
  sbis USR,UDRE  ; ABGEÄNDERT
  rjmp serout
  out UDR, temp
ret               ;zurück zum Hauptprogramm


danke ANDY

von mikki merten (Gast)


Lesenswert?

Beim 8515 musst du den STACK-Pointer SPL und SPH initialisieren da 
dieser Baustein über mehr als 256 Byte SRAM verfügt.

Also:
ldi temp, high(RAMEND)
out SPH, temp
ldi temp, low(RAMEND)
out SPL, temp

von Andy (Gast)


Lesenswert?

Hey super, jetzt funktionierts.
Danke für deine schnelle Hilfe - da wär ich so schnell nicht drauf 
gekommen ...

SUPER FORUM ;-)

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.