So hat etwas gedauert, aber nun komme ich mit EOR halbwegs klar und habe mir da auch ein kleines Prog. zusammen gebastelt.

Im Simulator läuft es im Pollinboard ist es gestern auch mal gelaufen, nun habe ich die HEX heute noch mal übertragen aber es läuft nicht mehr.

Die Testtool.hex läuft, also liegt es am Prog. nur ist mir mal wieder nicht klar wieso. Da es ja im Simulator läuft.

Code:
.include "m16def.inc"
.def arbeitsregister = r16
.def Tastmerker = r17
.equ Timerwert = 65536 - 100


start:
    ldi arbeitsregister, 0b11100000
    out DDRd, arbeitsregister
    cbi POrtd,pb6
	cbi PORTD,PB7

taster:            ;Auswahl ob Taster betätigt
    sbic PIND,PB2 
    rjmp reset
    sbis PIND,PB2
    rjmp taster

reset:
    ldi r16,0b00000001
    eor r17, r16
    cpi r17,0x01
    brne lichtaus
    breq lichtan
	
Schleife:
    ldi arbeitsregister,  (1<<tov1)
    out TIFR, arbeitsregister
	
Timer:
    ldi arbeitsregister, HIGH(Timerwert)
    out TCNT1H, arbeitsregister
    ldi arbeitsregister, LOW(Timerwert)
    out TCNT1L, arbeitsregister
    ldi arbeitsregister, (1<<CS12)
    out TCCR1B, arbeitsregister
loop:
    in arbeitsregister, TIFR
    sbrs arbeitsregister, TOV1 
    rjmp loop
    rjmp taster

lichtan:
    sbi portd,pb6
    sbic pind,pb2
    rjmp lichtan
    rjmp schleife

lichtaus:
    cbi portd,pb6
    sbic pind,pb2
    rjmp lichtaus
    rjmp schleife
Wenn der Taster betätigt wird, wird über EOR die LED ein geschaltet.
Ist der Taster wieder 0 springt das Prog in eine Timer Schleife und von dort wieder in die Tasterabfrage.

Wenn der Taster nun betätigt wird, folgt nun der gleiche Ablauf nur das über EOR die LED diesmal Aus statt Ein geschaltet wird.