Forum: Mikrocontroller und Digitale Elektronik IVR Tabelle auslesen


von Thomas Schattat (Gast)


Lesenswert?

Guten Abend AVR Spezies,

bastele gerade mit einem ATTiny12 herum (mein Programm funktioniert
soweit schön), habe jedoch das Problem daß ich aus einer Tabelle die
ich an Programmstelle $100 abgelegt habe nicht auslesen kann.
Im Ponyprog steht die Tabelle an Stelle $200, ich denke aber das  kommt
von der doppelten Breite des AVR Programmspeichers, Ponyprog ist da
wohl 8 bitweise organisiert.

Hier mein Codeausschnitt:

Hier den Zeiger Z einstellen auf $100 und folgende, mit Zh=1 und Zl=0
bin ich bei $100, stimmt das??

ldi Zh, $01
mov Zl, var1
;nun Werte auslesen ab $100 in Abhängigkeit von var1
lpm var2, Z

.org $100
.DB 139,138,138,...und so weiter, insgesamt 250 Werte

Ich stelle den Zeiger mit Zh auf $100 und folgende ein und möchte nun
mit var1 an die richtige Stelle in der Tabelle gehen. Geht aber so
nicht, weiß nicht was ich auslese. Ist ein Timeout den ich brauche,
wenn ich testweise den Timeoutwert fest zuweise (ldi var2, $50 z.B.)
läuft das Programm.
Bin für jede Idee dankbar, das ist die letzte einer längeren Folge von
Hürden. Ich bin sicher daß einer da draußen das weiß.

Besten Dank schon mal vorab und schönen Sonntag...

Gruß

Thomas

von mmerten (Gast)


Lesenswert?

Kleiner Denkfehler drin der Programmspeicher ist 16 Bit breit
daher muß für den Tabellenstart:

.org $100
.DB 139,138,138,...und so weiter, insgesamt 250 Werte

das Registerpaar ZH:ZL mit $200 geladen werden

von Thomas Schattat (Gast)


Lesenswert?

Hallo,
verstehe ich zwar nicht, probiere es aber trotzdem aus. Erst mal DANKE,
melde mich wenn ich weiter gekommen bin.

Gruß

Thomas

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.