Hallo, ich möchte mit einem atmega32 eine LED schalten. Das ganze soll in Assembler geschieben werden, es sollen die Kommandos sbis und sbic genutzt werden. Der Eingangspin soll der Pin 1 von PortD sein. Leider leuchtet die LED an PortB die ganze Zeit, es wird nicht geschaltet. Wo ist der Fehler? Franz Hier der Code:
1 | include "m32def.inc" ; Definitionsdatei für den Prozessortyp einbinden |
2 | |
3 | ldi r16, 0xFF |
4 | out DDRB, r16 ; Alle Pins am Port B durch Ausgabe von 0xFF ins |
5 | ; Richtungsregister DDRB als Ausgang konfigurieren |
6 | ldi r16, 0x00 |
7 | out DDRD, r16 ; Alle Pins am Port D durch Ausgabe von 0x00 ins |
8 | ; Richtungsregister DDRD als Eingang konfigurieren |
9 | |
10 | loop: |
11 | sbic PIND, 1 |
12 | in r16, 1 |
13 | |
14 | sbis PIND, 1 |
15 | in r16, 0 |
16 | |
17 | |
18 | out PORTB, r16 ; Inhalt von r16 an Port B ausgeben |
19 | |
20 | rjmp loop |