Forum: Mikrocontroller und Digitale Elektronik Loop Schleife funktioniert nicht


von Andrey Richter (Gast)


Lesenswert?

Hallo zusammen !
Kann jemend mir erklären wieso Loop Schlefe funktioniert nicht.Ich 
dachte dass LED1 am Port B wird blinken.Im voraus - danke.
ich schreibe:

.include"8515def.inc"
.def temp   =r16
.def count  =r17
.def count1 =r18

.cseg
.org 0x000
   rjmp main

;init Routine
init:
    ldi temp,0xff
    out DDRB,temp
    out PORTB,temp
    ret

;Loop Routine
loop:
    inc count       ;inkrementiere
    cpi counter,255 ;vergleiche mit 255
    brsh loop1      ;if kleiner dann loop1, else-HauptProg
    ret
loop1:
    inc count1
    cpi count1,255
    brsh loop1
    rjmp loop

;Blink Routine
ein:
    cbi PORTB,1
    ret
aus:
    sbi PORTB,1
    ret

;Hauptprogramm
main:
    ldi temp,LOW(RAMEND)
    out SPL,temp
    ldi temp;HIGH(RAMEND)
    out SPH,temp

    rcall init
    rcall ein
    rcall loop
    rcall aus
    rcall loop

    rjmp main

von UBoot-Stocki (Gast)


Lesenswert?

Hi,

wenn ich das richtig sehe, fehlt die Initialisierung des Stacks ...

Gruß

UBoot-Stocki

von Oliver (Gast)


Lesenswert?

Der Wurm ist dort begraben:

;Loop Routine
loop:
    inc count ;inkrementiere
    cpi counter,255 ;vergleiche mit 255
    brsh loop1 ;if kleiner dann loop1, else-HauptProg
    ret
loop1:
    inc count1
    cpi count1,255
    brsh loop1
    rjmp loop


Es muß heißen: brlo statt brsh!

Ungewöhnliches Schleifenkonzept. Womöglich ist die Schleife dennoch zu 
schnell, um ein Blinken zu erkennen.

Grüße
Oliver

von UBoot-Stocki (Gast)


Angehängte Dateien:

Lesenswert?

Aha,

habe die Stackinitialisierung dann doch gefunden :-) Hätte schwören 
können, dass sie fehlt ...

Gruß

UBoot-Stocki

P.S.: Für Schleifen verwende ich das Prog im Anhang ...

von Andrey Richter (Gast)


Lesenswert?

Die Programm für schleifengeneration ist einfach genial !!!
Jetzt alles funktioniert.
Danke allen für die Hilfe.

Andrey Richter

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
Noch kein Account? Hier anmelden.