www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Sprungbefehl am µC Wichtig & Eilig


Autor: Tobias Gläser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi! Bin grad über Google auf das Forum gestoßen, weil ich dringend Hilfe
brauche...

Ich Programmiere eben auf der Arbeit (Azubi) ne kleine Steuerung am
80C535 von Infineon

Mein Problem:

In der Initialisierungsphase meines Programmes werden mit Zeitabständen
auf 17 Adressen eingelesene Analogwerte abgespeichert.
Soweit so gut, das habe ich mit

mov dptr,#05160h
movx @dptr,a

gemacht. Im Akku war der Wert vom AD-Wandler jeweils temporär.

Mein Problem nun ist, dass ich nun im Hauptprogramm, was danach
anläuft, wieder AD-Messungen mache und diese nun mit den gespeicherten
werten vergleichen muss.

so wie: "CJNE A,#012h,m1"

also bei mir: "CJNE A,[gespeicherter Wert],m1"

Wie bekomme ich meinen Gespeicherten Wert dorthin??? oder gibts ne
andere möglichkeit das Carry zu setzen? Hier das Beispiel wie es sein
sollte:

mov DPTR,#05160h  ; Speicheradresse in Datenpointer schreiben
movx a,@DPTR    ; Adressierter RAM-Inhalt im Akku speichern
mov r1,a    ; Akku in Register sichern
call ADmess    ; Akku wird mit AD-Wert geladen
cjne a,r1,m1    ; Setzt Carry wenn Akku größer als r1
m1: jc m50    ; Springt wenn Carry gesetzt zu m50
mov P4,#11111111b  ; Läd den Port mit einer 8-Bit-Konstanten
mov P5,#11111111b  ; Läd den Port mit einer 8-Bit-Konstanten
jnc m18      ; Springt wenn Carry nicht gesetzt zu m18


Bitte dringendst um Hilfe.

Danke MfG Tobias Gläser

Autor: Tobias Gläser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach Ps: noch ne kleine Frage... Was ist ein "dadr"?? Wie beim Befehl
CJNE A,dadr,rel

Danke MfG Tobias Gläser

Autor: Andreas Jäger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Was ist ein "dadr"??

Ich kenne zwar den Controller nicht, aber laut Datenblatt heist das
"direct address". D.h. der Wert in A wird mit dem Wert  verglichen,
der an der Adresse <dadr> steht.

Laut Datenblatt heist das übrigens

 CJNE A,direct,rel

Autor: Tobias Gläser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahja... nuja Ich hab noch so en Uralt Datenblatt noch von der ersten
Version... das war eins von Siemens, net doll beschrieben und
Englisch.

Danke

Das obere Problem hat sich so ziemlich geklärt.

Is übrigens en Infineon SAB80C535

MfG Tobias Gläser

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenns nur 17 Byte sind, warum willst Du die unbedingt im externen RAM
speichern, den braucht man doch nur für große Datenfelder.

Nimm doch erstmal den internen SRAM:
;
        dseg    at 30h
wert0:  ds      1
wert1:  ds      1
;...
wert16: ds      1

        cseg
compare:
        call    admess
        cjne    a, wert0, _c0
_c0:
        jc      _c1

_c1:


Peter

Autor: Tobias Gläser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm hört sich eigentlich gut an, nur sind es bedeutend mehr...
In der init Phase werden Sehr viele Messungen gemacht
(Bereichsmessungen von nem Abstandssensor, welcher weder Linear
arbeitet und wo sich bei neustart auch die Bereiche verschieben)

Aber ich versuche mal dass ich es im Internen unterbekomme

Danke!

MfG Tobias Gläser

Autor: Tobias Gläser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es reicht! Danke! Die 17 Adressen passen ja, und die gesamten anderen
Messungen konnte ich nun auch (Da es als Unteprogramm war) nach der
Bearbeitung aufrufen und somit den gleichen Speicherplatz
wiederverwenden

merci!

MfG Tobias Gläser

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.