Archiv verlassen und diese Seite im Standarddesign anzeigen : DPTR, Tabellen lesen
Import-Script
06.01.2002, 17:19
Hallo! <BR> <BR>Also, ich stehe wie immer mal wieder vor einem Problem. <BR> <BR>Ich möchte gern ein paar Werte aus einem Feld auslesen. Leider funzt das nicht so, wie ich es gerne hätte (warum auch ;-)). <BR> <BR>Hier mal das Listing: <BR> <BR>MOV DPTR, #buchA_db <BR> <BR>JUMPER: <BR>For R0 = #0 to #15 <BR>MOVC A,@A+DPTR <BR>MOV P3,R0 <BR>MOV P1,A <BR> <BR>CALL pause3 <BR> <BR>MOV P1,#ffh <BR>NEXT R0 <BR> <BR>MOV A,#0 <BR> <BR>JMP JUMPER <BR> <BR>buchA_db: <BR>DB 1,246,246,1,255 <BR>DB 2,23,12,2,255 <BR> <BR>Das Prog soll eigentlich nichts weiter machen, als, so lange wie die Schleife läuft, die werte in DB hintereinander auslesen und an P1 bringen. <BR> <BR>So Leute, Ich muß ja mal zugeben, dass ich dass mit diesen auslesen etc. auch noch nicht wirklich begriffen habe. <BR>Aber nun hoffe ich ja, dass ihr mir weiterhelfen könnt. <BR>Vielleicht könnte auch mal jemand eine wirklich schöne und einwandfreie Übersetzung plus Bsp. irgendwo herzaubern. <BR> <BR>Vielen Dank schon mal im Voraus. <BR>reno
Import-Script
06.01.2002, 20:32
Hallo Reno, <BR> <BR>der Befehl lautet doch: MOVC A, @A + DPTR <BR>und nicht MOVC A, @DPTR oder MOVC A, @R0 + DPTR. <BR> <BR> <BR>Peter
Import-Script
06.01.2002, 21:25
@Peter <BR> <BR>Hab ich das nicht so in meinem Programm? Ich glaube schon. Zeile 4. <BR> <BR>reno
Import-Script
07.01.2002, 11:32
Geschrieben hast Du es, aber wohl nicht verstanden. <BR>Ich wollte Dich bloß darauf hinweisen, daß es heißt "A + DPTR" und "+" heißt, daß beide addiert werden, um die Adresse zu erhalten.
Import-Script
07.01.2002, 20:20
Aber der Akku wird gar nicht inkrementiert, daher werden auch keine verschiedenen Werte nacheinander ausgelesen. <BR>Vor das MOVC A, @A+DPTR müsste wohl noch ein <BR>MOV A, R0 <BR>oder? <BR>(Hab mich jetzt mal aufs Glatteis gewagt und einen Tipp zum Thema Software gegeben, obwohl ich weiß, dass das nicht ohne Risiko ist.
Import-Script
07.01.2002, 20:41
Hi <BR> <BR>Der Akku verändert aber bei jedem Schleifendurchlauf seinen Wert da movc A,@A+DPTR ja den Wert des Akku ändert. Dein Zeiger zeigt dann ins Nirvana. Ich(tm) würde das so machen: <BR> <BR>start: <BR>mov R7,#15 <BR>mov DPTR,#adresse <BR>loop: <BR>clr A <BR>inc DPTR <BR>movc A,@A+DPTR <BR>mov P3,R7 <BR>mov P1,A <BR>call pause <BR>djnz R7,loop <BR> <BR>adresse: <BR>db .... <BR> <BR>Geht sicher auch mit weniger Befehlen aber so ist das schön übersichtlich. Den Akku setzt ich nur dann nicht 0 wenn ich eine Umrechnungstabelle verwenden will. Und sieh mir bitte nach das ich diese for..next Geschichte nicht verwende. <BR> <BR>Matthias
Import-Script
07.01.2002, 20:41
Hi <BR> <BR>Der Akku verändert aber bei jedem Schleifendurchlauf seinen Wert da movc A,@A+DPTR ja den Wert des Akku ändert. Dein Zeiger zeigt dann ins Nirvana. Ich(tm) würde das so machen: <BR> <BR>start: <BR>mov R7,#15 <BR>mov DPTR,#adresse <BR>loop: <BR>clr A <BR>inc DPTR <BR>movc A,@A+DPTR <BR>mov P3,R7 <BR>mov P1,A <BR>call pause <BR>djnz R7,loop <BR> <BR>adresse: <BR>db .... <BR> <BR>Geht sicher auch mit weniger Befehlen aber so ist das schön übersichtlich. Den Akku setzt ich nur dann nicht 0 wenn ich eine Umrechnungstabelle verwenden will. Und sieh mir bitte nach das ich diese for..next Geschichte nicht verwende. <BR> <BR>Matthias
Powered by vBulletin® Version 4.1.7 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.