So dann mache ich hier mal weiter, denn ich habe auch Probleme.
Habe einen MAX202 von Reichelt auf meinem Steckbrett aufgebaut (da 232 auch nicht gut gelaufen ist) und habe Kerko 100N Kondensatoren verwendet. Steckerbelegung müßte auch stimmen. Wieviele Adern müssen denn vom Stecker an die Schaltung? 3 oder? TXD RXD und GND.
HTerm empfängt auch was, aber nur Müll. Ist auch richtig eingestellt Com1 9600 Baud.
Der Code ist von Mikrocontroller.net. gehe davon aus das er richtig ist. Stimmt die Formel zur UBRR Berechnung? Habe von 4MHz auf 8MHz gewechselt. In PonyProg sind ausser chksel 2 alle von 0 bis 3 angekreuzt ( entspricht 8MHz soweit ich weiss)
Code:
.include "m8def.inc"
.def temp = r16
.equ CLOCK = 8000000
.equ BAUD = 9600
.equ UBRRVAL = CLOCK/(BAUD*16)-1
; Stackpointer initialisieren
ldi temp, LOW(RAMEND)
out SPL, temp
ldi temp, HIGH(RAMEND)
out SPH, temp
; Baudrate einstellen
ldi temp, LOW(UBRRVAL)
out UBRRL, temp
ldi temp, HIGH(UBRRVAL)
out UBRRH, temp
; Frame-Format: 8 Bit
ldi temp, (1<<URSEL)|(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
Woran könnte es liegen?
Lesezeichen