Das Proggi:
.include "2313def.inc" ;Pfad zur Include-Datei ggf. anpassen
.def temp = r16 ;braucht man immer
.org 0000
rjmp reset ;RESET =$000b
RETI ;External Interrupt0 Vector Address
RETI ;External Interrupt1 Vector Address
RETI ;Timer1 Capture Handler
RETI ;Timer1 Compare Handler
RETI ;Timer1 Overflow Handler
RETI ;Timer0 Overflow Handler
rjmp rx_com ;UART RX Complete Handler
RETI ;UDR Empty Handler
RETI ;UART TX Complete Handler
RETI ;Analog Comparator Handler
reset:
;Stackpointer initialisieren
ldi temp,(RAMEND)
out SPL, temp
sbi UCR,RXEN ;RX aktivieren
sbi UCR,RXCIE ;RX-Complete aktivieren
ldi temp, 25 ;9600 baud bei 4.000.000 Hz
out UBRR, temp
ldi temp, 0b01000000 ;Port D = Eingang und Ausgang !!!!
out DDRD, temp
sei ;Allgemeine Interruptfreigabe
;***** Hauptschleife ***********************************
loop:
sleep ;Prozessor schlafen schicken
nop
rjmp loop ;bis zeit = 0 ist
;**** Serielle ausgabe ********************************
serout:
sbi ucr,txen ;set sender bit
sbis usr,udre ;warten bis register gelöscht ist
rjmp serout
out udr,temp ;send variable
cbi ucr,txen ;clear sender bit
ret
;***** RS232 empfangen ********************************
rx_com:
in temp,udr ;Lese Wert
reti
rx2: reti
Schaltung im Anhang:
Hochgeladenes Bild :
rs232.gif
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.