mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik stuck initialisieren


Autor: cypher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Ich bin noch ein blutiger Anfänger aber vieleicht hat ja jemand lust mir 
zu helfen.
Folgendes Problem:
Ich habe ein leines Programm in avr studio 4 geschrieben das einfach nur 
Ports einschalten und ausschalten soll.
Aber wenn ich den befehl RCALL benutzen will dann springt er entweder 
nicht um, oder bleibt auf dem Befehl sitzen.
Meine Frage:
Wie initialisiere ich den stack richtig, oder is das überhaupt das 
Problem?

Hier der code:
.include "m32def.inc"

ldi r16,255
out ddra,r16
 
ldi r16, LOW(RAMEND)  
out SPL, r16
ldi r16, HIGH(RAMEND) 
out SPH, r16

rjmp mainloop

wait:
ldi r16,8

wt:
ldi r17,170

wt2:
ldi r18,120

wt3:
dec r18
brne wt3
dec r17
brne wt2
dec r16
brne wt
ret

mainloop:

ldi r16,0
out porta,r16
rcall wait

ldi r16,1
out porta,r16
rcall wait

ldi r16,2
out porta,r16
rcall wait
rjmp mainloop


Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cypher schrieb:

> Aber wenn ich den befehl RCALL benutzen will dann springt er entweder
> nicht um, oder bleibt auf dem Befehl sitzen.

Ich nehme an, du sprichst vom Simulator?

Ist dir bewusst, dass es dort 2 Möglichkeiten gibt, in Einzelschritten 
durch dein Programm zu gehen?
Einmal F10 und einmal F11

Der Unterschied:
Bei F10 werden rcall nicht weiter in Einzelschritten verfolgt sondern 
der Simulator taucht in das Unterprogramm weg und meldet sich erst 
wieder, wenn das Unterprogramm den ret durchführt.

F11 hingegen macht den Einzelschritt in das Unterprogramm hinein.

Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:

> Ich nehme an, du sprichst vom Simulator?

Falls nicht, dann solltest Du den verwendeten Port noch initialisieren 
(auf Ausgang schalten), Stichwort DDRA. Ansonsten sehe ich auf den 
ersten Blick keine Fehler.

MfG

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Hast du den richtigen Controller im Simulator eingestellt?

MfG Spess

Autor: cypher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schön :)
Der simulator war gemeint.
Danke für eure Hilfe und die schnellen Posts :)
nun funktoniert alles! Ich hatte das Programm erst garnicht übertragen 
um es auszuprobieren! Es lag nur daran das ich F10 und nicht F11 benuttz 
habe.

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.