mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Loop Schleife funktioniert nicht


Autor: Andrey Richter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: UBoot-Stocki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

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

Gruß

UBoot-Stocki

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: UBoot-Stocki (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Andrey Richter (Gast)
Datum:

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

Andrey Richter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.