> Wenn die ersten beiden Bits Portd gesetzt sind wird die Schleife verlassen. Sehe
ich das richtig ?
Ja, aber so meinst du das nicht. ;-)
Du bist, nachdem du Anfängerfehler Nr.3 (AVCC/AGND/AREF nicht
angeschlossen...) umschifft hast, sofort auf Anfängerfehler Nr.2
gestoßen: Einlesen der anliegenden Pegel an den IC-Beinchen immer durch
Auslesen des _PIND_-Registers, nicht PORTD!!
Außerdem:
InstructionSet rauskram - SBIS A,b ;wobei b zwischen 0 und 7 liegen
muß. b gibt die Nummer des Pins an, der abgefragt werden soll.
Das heisst also konkret:
Wenn du die Pegel an PD0 und PD1 abfragen willst ((und nicht nur
wissen willst, wie _PORTD0/1_ gerade sitzt)), mußt du die
Abfragebedingung anpassen. Das geht dann nicht mehr mit einem einfachen
(wohl aber mit einem zweifachen) sbis:
sbis PIND, 0
rjmp Abfrag1
sbis PIND, 1
rjmp Abfrag1
Oder du maskierst die restlichen, uninteressanten Bits aus und prüfst
auf "0x03":
in pind, r16 // Pegel an PinD einlesen
andi r16, 0x03 // alle Bits zu Null setzten, außer Bit0 und 1
subi r16, 0x03 // 0x03 abziehen
brne Abfrag1 // wenn jetzt nicht 0 rauskommt, dann liegt an PD0/1
auch kein high an
(Die 2.Variante ist etwas länger, aber ab einer gewissen Anzahl von
abzufragenden Eingängen ist diese dann kürzer - Geschmackssache.)
Schmittchen.