www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Rcall -Befehl im AVRStudio4.04??


Autor: Max (Gast)
Datum:

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

Autor: Thomas F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Hast du den Stackpointer initialisiert? Siehe Tutorium -> Stack:

ldi temp, RAMEND  ;Stackpointer initialisieren
out SPL, temp

ciao, Thomas

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ha, jetzt gehts.
Hab das in einem anderen Prog gesehen und dachte mir, das brauch ich eh 
nicht
Danke
max

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
8515: 16 Bit-Stackpointer. Ich würde SPH auch initialisieren.
---
Holger

Autor: Frankl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum benutzen soviele Leute das 4.04 wo doch es noch nicht mal Beta 
ist, wenn ich den Leuten im www.avrfreaks.net forum 4.0 glauben kann.

Autor: Max (Gast)
Datum:

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

Autor: Michael (Gast)
Datum:

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

Autor: Mark Hämmerling (Gast)
Datum:

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

Autor: Michael (Gast)
Datum:

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

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.