Hallo Stefan,
könnte sein was Peter schreibt.
Zudem wäre es besser, die E/A-Konfiguration zu Anfang ausserhalb der
Schleife zum machen.
1 | #include "m16def.inc"
|
2 |
|
3 | clr R18 ; Reg löschen
|
4 | ; Pull-ups aus, TriState schalten
|
5 | out PORTA,R18 ; Port A löschen
|
6 | out PORTB,R18 ; Port B löschen
|
7 |
|
8 | out DDRA,R18 ; alles als Eingang
|
9 | neg R18 ; Reg invertieren
|
10 | out DDRB,R18 ; Port B auf Ausgang
|
11 |
|
12 | loop:
|
13 | in R22, PinA ;kopiere PinA in Register 22
|
14 |
|
15 | out PORTB,R22 ;aktiviert LEDs
|
16 |
|
17 | rjmp loop ;springe zu Loop
|
alternativ kannst Du auch:
1 | #include "m16def.inc"
|
2 |
|
3 | clr R18 ; Reg löschen
|
4 | out PORTA,R18 ; Port A löschen
|
5 | out PORTB,R18 ; Port B löschen
|
6 |
|
7 | ldi R18,0b00000000 ; Muster 0=Eingang, 1=Ausgang
|
8 | out DDRA,R18 ; PORT A Richtung setzen
|
9 | ldi R18,0b11111111 ; Muster 0=Eingang, 1=Ausgang
|
10 | out DDRB,R18 ; Port B Richtung setzen
|
11 |
|
12 | loop:
|
13 | in R22, PinA ;kopiere PinA in Register 22
|
14 |
|
15 | out PORTB,R22 ;aktiviert LEDs
|
16 |
|
17 | rjmp loop ;springe zu Loop
|
Da, kannst Du dann auch direkt sehen, welche Port-Pins wie geschaltet
sind.
Grüße
Hans-Josef