Hallo Arthur S.

so als Muster sieht die Welt für einen C-Progger und meistens nur ASM-Leser doch schon viel übersichtlicher aus.
Nett finde ich deine Addition von 0x25 mit dem SUBI temp0, -[/b]0x25. Das hätte ich, wenn überhaupt, nur in den Outputs vom C-Compiler entnommen. Ansonsten hätte ich das ADD, mit einem weiteren LDI davor benutzt.

Mir fehlen hier natürlich die *.inc-Dateien als AVR-ASM-Starter ganz enorm. Ich gehe mal davon aus, dass auch die SWITCH_[LEF|RIGHT]_BACKLED_[ON|OFF] als Macro dort versteckt sind. Und was fehlt mir sonst noch?

Die eigentliche Arbeitsschleife könnte doch folgendermaßen auch funktionieren?
Code:
loop:   SWITCH_LEFT_BACKLED_OFF
        SWITCH_RIGHT_BACKLED_OFF

loop_0: sbic pind, 0    ; Abfrage des Empfängers auf Null, da dieser
        rjmp loop2      ; auf LOW gezogen wird bei Empfang.

        SWITCH_LEFT_BACKLED_ON
        SWITCH_RIGHT_BACKLED_ON

loop_1: sbis pind, 0    ; Warten, bis das Hindernis wieder weg ist.
        rjmp loop_1

        rjmp loop
Wenn ich das so weit richtig eingebaut haben sollte, würde ich mir davon versprechen, dass die LED's nicht permanent an- und ausgeschaltet werden bei einem Hindernis, und so heller leuchten müssten. Kann das so gehen?

Und hier natürlich auch ein 'thanks a lot' für deinen Code.
Viel Erfolg bei den Prüfungen.
Gruß Sternthaler