IVR Tabelle auslesen

Gast #71896
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
Gast #71897
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren