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.