ich hatte als test einfach vor ausgelöst durch das senden eines bytes via RS232 die LED an bzw. ausgehen zu lassen. allerdings funktioniert das ganze nur ein mal. sprich ich kann sie anmachen.

Code:
.include "m16def.inc"

.def temp = r16
.equ CLOCK = 10000000
.equ BAUD = 9600
.equ UBRRVAL = CLOCK/(BAUD*16)-1

.org 0x00
        rjmp main

.org URXCaddr                             ; Interruptvektor für UART-Empfang
        rjmp int_rxc

; Hauptprogramm
main:

	ldi r16, 0xFF
        out DDRB, r16
        ldi r16, 0xFF    
        out PORTB, r16      
        cbi DDRB, 4       
	sbi PORTB, 0
	
        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, RXCIE                  ; Interrupt bei Empfang
        sbi UCSRB, RXEN                   ; RX (Empfang) aktivieren
        sbi UCSRB, TXEN                   ; RX (Empfang) aktivieren
        
s1:	sei                               ; Interrupts global aktivieren
        
loop:   rjmp loop       

; Interruptroutine: wird ausgeführt sobald ein Byte über das UART empfangen wurde
int_rxc:
	sbis PORTB, 0
	sbi PORTB, 0
	sbic PORTB, 0
	cbi PORTB, 0
	reti
wäre nett wenn mir jemand erklären könnte warum.