was ist hier falsch?

Gast #27946
Lesenswert?

Hallo,
ich habe mir ein Assemblerprogramm geschrieben das eine LED zu blinken 
bringen soll aber sie leuchtet nur.
Hier ist das Assemblerprogramm:


.include "4433def.inc"     ;bzw. 2333def.inc

         ldi r16, 0xFF
         out DDRB, r16     ;Port B durch Ausgabe von 0xFF ins
                           ;Richtungsregister DDRB als Ausgang 
konfigurieren
         ldi r16, 0b11110111
     ldi r17, 0b11111111
loop:
        out PORTB, r16

         rcall sub1
    out PORTB, r17

         rcall sub1

     rjmp loop
;pause 2sec mit dem AVR-wartenschleifergenarator gemacht
sub1:
          ldi  R20, $48
WGLOOP0:  ldi  R21, $BC
WGLOOP1:  ldi  R22, $C4
WGLOOP2:  dec  R22
          brne WGLOOP2
          dec  R21
          brne WGLOOP1
          dec  R20
          brne WGLOOP0

          ldi  R20, $02
WGLOOP3:  dec  R20
          brne WGLOOP3

          nop
          nop
ret

Ende des programms
Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren