Hallo,
dieses kleine Programm soll nur einen Pin von H auf L setzen.Funzt
nicht .Was mache ich falsch ?
.CSEG
.ORG 0000
rjmp main
main:
ldi r16,low(ramend) ;StackPointer auf Ramend
out spl,r16
ldi r16,0b00000010 ;PortB PB1 als Ausgang setzen
out DDRB,r16 ;Richtungsregister setzen
clr r16
loop: sbi PORTB,1 ;High an Port B Pin1 ausgeben
rcall wait ;wartschleife aufrufen
cbi PORTB,1 ;low an Port B
rjmp loop ;Schleife neu beginnen
wait:
ldi R17, $1F ;0.001 s = 5000Khz
WGLOOP0: ldi R18, $55
WGLOOP1: dec R18
brne WGLOOP1
dec R17
brne WGLOOP0
nop
nop
ret
Vielen Dank....
sagt der Lehrling
Was macht das Programm denn ? PB1 ist abwechselnd für <1us High und dann für einige ms auf Low.
Hi,
loop:
sbi PORTB,1 ;High an Port B Pin1 ausgeben
rcall wait ;wartschleife aufrufen
cbi PORTB,1 ;low an Port B
rcall wait ;warteschleife aufrufen
rjmp loop ;Schleife neu beginnen
Ich glaub Du willst das so haben.
Cya
Carp
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.