Forum: Mikrocontroller und Digitale Elektronik DPTR Datenzeiger


von Tabaluga (Gast)


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

von edi (Gast)


Lesenswert?

hi,
versuchs mal mit inc a anstatt inc dptr
ed

von edi (Gast)


Lesenswert?

sorry , war quatsch..ed

von Tabaluga (Gast)


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?

von crazy horse (Gast)


Lesenswert?

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

von Tabaluga (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.