mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DPTR Datenzeiger


Autor: Tabaluga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ich hab das mit dem Datenzeiger noch nicht richtig verstanden.
Was ich hinbekommen habe ist, mit DB ein Datenfeld zu erzeigen, in dem 
ASCII Zeichen stehen. Vor dem Datenfeld habe ich eine Sprungmarke 
erstellt und mit MOV DPTR,#Sprungmarke das Datenfeld mit dem Datenzeiger 
verknüpft. Nun kann ich die Zeichen auslesen.
Das klappt auch soweit.

Jetzt möchte ich aber den Datenzeiger auf das RAM zeigen lassen, wo dann 
zur Laufzeit dynamisch andere Zeichen stehen können.
Z.B. schreibe ich ab Adresse 40h mehrere ASCII-Zeichen in das RAM.
Wenn ich MOV DPTR,#40h eingebe und dann mit
CLR A
MOVC A,@A+DPTR
; A verarbeiten...
INC DPTR
MOVC A,@A+DPTR
; A verarbeiten...
....
versuche die Zeichen auszulesen, klappt das nicht.

Geht das überhaupt???

Thanks Tabi

Autor: edi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,
versuchs mal mit inc a anstatt inc dptr
ed

Autor: edi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry , war quatsch..ed

Autor: Tabaluga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klappt leider auch nicht.
Wenn ich das richtig verstanden habe, steht in DPTR eine Adresse. Mit 
mov DPTR,#Sprungmarke schreibe ich die Adresse des ersten Zeichens der 
im Flash-Speicher stehenden ASCII-Zeichen.
Die unten angegebene Routiene zum Auslesen funktioniert ja auch mit dem 
im Flash-Speicher befindlichem ASCII-Zeichen.

Wenn also meine Annahme richtige ist, dann muss ich doch nur eine 
RAM-Adresse in DPTR schreiben. ODER kann ich das garnicht??? und wenn 
ja, wie?

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
verschieden Befehle für verschiedene Speicherbereiche,
aus dem Programmspeicher lesen mit movc, ist der RAM die Zieladresse, 
mußt du movx benutzen.

Autor: Tabaluga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, danke erstmal.

Ich hab das grad ne Menge dazu gelernt. Ich wußte nicht, dass es einen 
externen Datenspeicher gibt.
In meinem Fall wollte ich auf den internen Datenspeicher zugreifen, was 
man ja ganz normal mit MOV macht. Meine ASCII-Zeichen sollen auch im 
internen Datenspeicher stehen. Ein Arbeiten mit DPTR ist in diesem Fall 
also völliger Unsinn.

Thanks Tabi

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.