Probleme mit EEProm auslesen, spring immer zu Reset

Gast #71840
.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
Gast #71841
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
Gast #71842
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

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.