Rcall -Befehl im AVRStudio4.04??

Gast #14562
Lesenswert?

Wenn ich dieses Prog. im Studio simuliere, dann springt nach dem ret 
Befehl der PCounter zu rjmp main, und nicht eine Zeile nach dem 
rcall-Befehl.
Ich muß irgendwas vergessen haben, nur was?!
Es funktioniert nämlich im Studio und im Prozessor nicht.
Vielleicht kann sich das mal jemand durchsehen.
Danke
max

.device AT90S8515
.include "8515def.inc"

.def temp =r16
.def LED =r17
.def delay =r18
.def delay1 =r19
.def cmp =r20

.cseg
.org 0x00
  rjmp main

main:
  ser temp
  out DDRB,temp
  ldi cmp,0
  ldi LED,0xFF

LEDout:
  out PORTB,LED
  com LED
  rcall waittime
  rjmp LEDout

waittime:
  ldi delay,2
wait:
  dec delay
  ldi delay1,2
wait1:
  dec delay1
  cpse delay1,cmp
  rjmp wait1
  cpse delay,cmp
  rjmp wait
  ret
Gast #14567
Lesenswert?

Ja den SPH hab ich auch initialisiert, wie es bei den Appnotes von Atmel 
gemacht wurde. Haut super hin.
Hab mir das Studio 4.04 frisch runtergeladen, und nicht auf die Version 
geachtet.
Danke
max
Gast #14568
Lesenswert?

Laut Atmel ist das Studio4 jetzt die aktuelle Version und hat vor allem 
schon Features die das 3er nicht hat!

Das mit dem Stackpointer ist wichtig! Auch wenn du nur ein uC hast, der 
nur den SPL benötigt muss SPH immer initialisiert werden!!!
Gast #14569
Lesenswert?

Salut,

@Michael: hmm? Verfügen AVRs mit <=256B RAM überhaupt über ein 
SPH-Register? Und wieso kommentiert Atmel selbst in seinen AppNotes die 
SPH-Initialisierung für 2313 und Co. aus? Und an welcher Stelle wird SPH 
vom AVR referenziert? Da existieren doch intern gar keine 
Adressleitungen für das Hi-Byte der RAM-Adresse... ? Oder hab ich was 
falsch verstanden?

Etwas verwirrt,
Mark H. -- http://markh.de/avr/
Gast #14570
Lesenswert?

sorry wenn ich dich verwirrt hab, aber wir haben hier eine Menge 
Beispielprogramme für verschiedene Controller (von Atmel) und bei allen 
wird maximal der SPL initialisiert, was durchaus funktioniert, 
allerdings nur im AVRStudio(ob Ver.3 oder 4 ist egal). Das hat uns schon 
einige Nerven gekostet, deswegen wollte ich das nur mal erwähnen.
wenn der assembler das nicht macht (bei den kleineren atmels), dann muss 
man das auskommentieren!

sorry für die verwirrung

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