Gast
#1550425
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