Hallo, hier mie kleines Programm was nicht so läuft wies soll auf AVR 2313.An einem Pin soll nur ein Taktsignal erzeugt werden. .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 Was mache ich falsch ??? Vielen Dank .... sagt der Lehrling
Wenn ich das richtig sehe, springst Du nach dem Befehl cbi PORTB,1 sofort wieder an die Marke loop, wo sofort wieder der Befehl sbi PORTB,1 ausgegeben wird. Füge mal nach cbi PORTB,1 rcall wait ein. Gruß KMT
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.