www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit EEProm auslesen, spring immer zu Reset


Autor: sammy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.include "tn15def.inc"
rjmp main

main:
  ldi r20,0x00
  rjmp EERead
    mov r16,r21
  INC r20    ;eeprom adresse um eins erhoehen
  rjmp EERead
  mov r17,r21
rjmp ende

EERead:
sbic EECR,EEWE
rjmp EERead
out EEAR,r20
sbi EECR,EERE
in r21,EEDR
ret

ende:
rjmp ende



.eseg ; EEPROM-Segment
.org 0; "start-adresse"
table1: .db 0xff,0xee,0xdd,0xcc,0xbb,0xaa,0x99,0x88





nach dem ersten einlesen des EEproms springt er immer wieder an den
Anfang der Main Prozedur.... er soll doch da weitermachen wo er vor dem
EEprom lesen war....
kann mir jemand helfen?

THx

Autor: Christian D (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo sammy,

wenn ich das richtig gesehen habe, springst Du EEread durch einen
relativen Sprung (rjmp) an (kein Unterprogrammaufruf). Den Rücksprung
machst Du mit ret, als wäre es ein Unterprogramm gewesen.
Also entweder, Du baust Dir die EEread als Unterprogramm und springst
sie mit CALL an, oder Du setzt zwei Rücksprungmarken, die Du mit RJMP
anspringst (Dann mußt Du Dir noch eine Unterscheidung überlegen, ich
würde einfach noch ein Register verwenden).

Gruß

Christian

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
völlig normal - man kann (im Normalfall) nicht ein Unterprogramm mit
rjmp anspringen und mit ret zurückkehren, Korrekter Aufruf wäre rcall.
Weiss jetzt nicht aus dem Kopf ob der Tiny15 RAM hat, wenn ja, musst du
auch vorher den Stackpointer initialisieren. Bei Hardwarestack ist dass
nicht nötig.

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.