Hallo ich möchte ein Lauflicht in Assembler Programieren, für den ATMega8. Ich verstehe nicht wieso mein Programm nicht funktioniert.Wohlbemerkt bin ich noch anfänger.^^ ich hoffe mir kann jemand helfen. Die LEDs befinden sich an PortB. Bitmuster: 0000 0*00*0 Stern entspricht einer leuchtenden LED 00**00 0****0 ****** 0****0 00**00 000000 ;************************************************************** .include"m8def.inc" .org 0x0000 LDI R22,0x04 ;) OUT SPH,R22 ;)Stack festlegen LDI R22,0x00 ;) OUT SPH,R22 ;) NEU: RCall WGLOOP4 ;Sprungziel mit Stack LDI R16,0B00100001 ;Lade Bitmuster in register OUT PORTB,R16 ;Setze Ausgänge Nach Bitmuster in R16 RCall WGLOOP4 ;Sprungziel mit Stack LDI R16,0B00010010 OUT PORTB,R16 RCall WGLOOP4 ;Sprungziel mit Stack LDI R16,0B00001100 OUT PORTB,R16 RCall WGLOOP4 ;Sprungziel mit Stack LDI R16,0B00011110 OUT PORTB,R16 RCall WGLOOP4 ;Sprungziel mit Stack LDI R16,0B00111111 OUT PORTB,R16 RCall WGLOOP4 ;Sprungziel mit Stack LDI R16,0B00011110 OUT PORTB,R16 RCall WGLOOP4 ;Sprungziel mit Stack LDI R16,0B00001100 OUT PORTB,R16 RCall WGLOOP4 ;Sprungziel mit Stack LDI R16,0B00000000 OUT PORTB,R16 RJMP NEU WGLOOP4: ldi R22, 0x12 ;) WGLOOP0: ldi R18, 0xA1 ;) WGLOOP1: ldi R19, 0xD3 ;) WGLOOP2: dec R19 ;) brne WGLOOP2 ;) dec R18 ;) brne WGLOOP1 ;) dec R22 ;) brne WGLOOP0 ;) ;Zeitkonstante 1 Sekunde ; ----------------------------- ;) ; delaying 3 cycles: ;) ldi R22, 0x01 ;) WGLOOP3: dec R22 ;) brne WGLOOP3 ;) ; ----------------------------- ;) ; delaying 1 cycle: ;) nop ;) ; ============================= RET
>LDI R22,0x04 ;) >OUT SPH,R22 ;)Stack festlegen >LDI R22,0x00 ;) >OUT SPH,R22 ;) Da gehts schon los: Zweimal SPH? Den Rest hab ich mir nicht angeguckt.
>LDI R22,0x04 ;) >OUT SPH,R22 ;)Stack festlegen >LDI R22,0x00 ;) >OUT SPH,R22 ;) Du lädst 2x SPH, einer davon muss SPL sein. Und nehm RAMEND
Hallo danke das wars schon... war ein dummer fehler... Also vielmals danke.. ist mir ne halbe stunde lang nicht aufgefallen... und ihr findet es in 2 Minuten... hehe
Das war's schon. Wirklich? Wo wird Port B auf Output gestellt? Bisher werden nur die Pullups aktiviert.
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.