Forum: Mikrocontroller und Digitale Elektronik stuck initialisieren


von cypher (Gast)


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:
1
.include "m32def.inc"
2
3
ldi r16,255
4
out ddra,r16
5
 
6
ldi r16, LOW(RAMEND)  
7
out SPL, r16
8
ldi r16, HIGH(RAMEND) 
9
out SPH, r16
10
11
rjmp mainloop
12
13
wait:
14
ldi r16,8
15
16
wt:
17
ldi r17,170
18
19
wt2:
20
ldi r18,120
21
22
wt3:
23
dec r18
24
brne wt3
25
dec r17
26
brne wt2
27
dec r16
28
brne wt
29
ret
30
31
mainloop:
32
33
ldi r16,0
34
out porta,r16
35
rcall wait
36
37
ldi r16,1
38
out porta,r16
39
rcall wait
40
41
ldi r16,2
42
out porta,r16
43
rcall wait
44
rjmp mainloop

von Karl H. (kbuchegg)


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.

von Kluchscheißernder N. (kluchscheisser)


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

von spess53 (Gast)


Lesenswert?

Hi

Hast du den richtigen Controller im Simulator eingestellt?

MfG Spess

von cypher (Gast)


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.

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.