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
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?
verschieden Befehle für verschiedene Speicherbereiche, aus dem Programmspeicher lesen mit movc, ist der RAM die Zieladresse, mußt du movx benutzen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.