ich möchte über UART daten vom at90s2313 an einen mega8 schicken, aber irgendwie habe ich immer ein frame error . beide laufen mit externen takt auf 4mhz und 19.2k baud.
at90s2313 code:
Code:
.include "C:\Dokumente und Einstellungen\eric\Desktop\asm\2313def.inc"
.def temp1 = r16
.cseg
.org 0x000
rjmp reset
reset: ldi temp1, ramend
out SPL, temp1
sbi DDRD, 1 ;output
ldi temp1, 0x0c
out ubrr, temp1 ;baudrate 19200baud
cbi ucr, chr9 ;9bit modus aus
sbi ucr, txen ;transmitter ein
rjmp start
start: ldi temp1, 0b00101010 ;bitmuster
out udr, temp1 ;werte an sender übertragen
t1: sbis usr, udre ;warten bis übertragung fertig
rjmp t1
rjmp start
mega8 code:
Code:
.include "C:\Dokumente und Einstellungen\eric\Desktop\asm\m8def.inc"
.def temp1 = r16
.cseg
.org 0x000
rjmp reset
reset: ldi temp1, low(ramend)
out SPL, temp1
ldi temp1, high(ramend)
out sph, temp1
ldi temp1, 0b00111111 ;output
out DDRC, temp1
cbi DDRD, 0 ;input
sbi DDRB, 0 ;output
cbi ucsra, u2x ;geschwindigkeit 1x
cbi ucsrb, ucsz2 ;8bit modus
ldi temp1, 0x0c
out ubrrl, temp1 ;baudrate19200
sbi ucsrb, rxen ;receiver ein
start:
sbis ucsra, rxc ;neue daten in udr?
rjmp start
sbic ucsra, FE
rjmp start
sbi PORTB, 0 ;erfolgreich übertragen?
in temp1, udr
out PORTC, temp1 ;ausgeben
rjmp start
an portb sowie portc gibt der controller nichts aus.
würd mich freuen wenn mir jemand helfen kann weil momentan weiss ich einfach nicht mehr weiter
Lesezeichen