Vielen Dank, jetzt weis ich das auch
Jetzt habe ich aber wieder mal eine Frage:
Mit folgendem Code möchte ich bei Tastendruck (Pina.0) eine Led an Portc.0 toggeln.
Allerdings wird diese nicht getoggelt, sondern sie leuchtet nur solange, solange ich den Taster drücke.
Hier der Code:
Code:
$regfile = "m32def.dat"
$crystal = 16000000
$framesize = 30
$hwstack = 30
$swstack = 30
$asm
.def Null = R20
.def Eins = R21
.def K = R22
.def I = R23
.def J = R24
ldi null, &b00000000
ldi eins, &b11111111
ldi r16, &b11111111
Out Ddrc , R16
ldi r16, &b00000000
Out Ddra , R16
ldi r16, &b11111111
Out Portc , R16
ldi r16, &b11111111
Out Porta , R16
Lop:
sbis pina , 0
rjmp taster_an
rjmp lop
Taster_an:
ldi r16, &b00000000
sbis pinc , 0
ldi r16, &b11111111
cpi r16 , &b00000000
breq led_ein
sbi portc,0
rjmp ende_taster_an
Led_ein:
cbi portc,0
Ende_taster_an:
'rcall wait
ret
Wait:
ldi k,10
loop_k:
nop
nop
dec k
cpi k,0xFF
brne loop_k
dec j
cpi j,0xFF
brne Wait
dec i
cpi i,0xFF
brne Wait
ret
$end Asm
End
Warum wird die Led immer wieder ausgeschaltet (also 0 = ein und 1 = aus)??
Gruß
Chris
Lesezeichen