Gast
#313398
Servus,
seit zwei tagen versuch ich meinem 2313 das beizubringen. Was ich
ausschließen kann sind die Fusebits und damit eine falsche Frequenz.
Das Teil hat am pd2 4mhz.
Im Moment macht er nämlich gar nix. Txd hängt auf high, und macht
keinen Anschein das sich etwas ändert.
was mir aufgefallen ist UBRRH und UCSRC haben die gleich io Adresse.
getestet auf stk500. echo zum pc geht. liegt also definitiv am tiny.
ich hoff das mir jemand helfen kann, ich bin in jedem fall sehr dankbar
:S
Hier der code. Weitestgehend aus dem tutorial übernommen...
.include "tn2313def.inc"
.def temp = r16
.equ CLOCK = 4000000
.equ BAUD = 9600
.equ UBRRVAL = CLOCK/(BAUD*16)-1
; Stackpointer initialisieren
ldi temp, RAMEND
out SPL, temp
; Baudrate einstellen
ldi temp, LOW(UBRRVAL)
out UBRRL, temp
ldi temp, HIGH(UBRRVAL)
out UBRRH, temp
; Frame-Format: 8 Bit
ldi temp, (1<<UMSEL)|(3<<UCSZ0)
out UCSRC, temp
sbi UCSRB,TXEN ; TX aktivieren
loop: ldi temp, 'T'
rcall serout ; Unterprogramm aufrufen
ldi temp, 'e'
rcall serout ; Unterprogramm aufrufen
ldi temp, 's'
rcall serout ; ...
ldi temp, 't'
rcall serout
ldi temp, '!'
rcall serout
ldi temp, 10
rcall serout
ldi temp, 13
rcall serout
rjmp loop
serout:
sbis UCSRA,UDRE ; Warten bis UDR für das
nächste
; Byte bereit ist
rjmp serout
out UDR, temp
ret ; zurück zum Hauptprogramm