Werte aus Flash-Tabelle lesen

Gast #1539294
Lesenswert?

Guten Morgen!

ich möchte gerne aus einer auf dem Flash-Speicher hinterlegten "Tabelle" 
Werte einlesen.
Ich lese am ADC eine Spannung ein, auf die dann der jeweilige Wert aus 
der Tabelle gelesen werden soll (ADC funktioniert, passende Spannung 
wird auf dem LCD ausgegeben):
1
  ;Lambda-Wert aus Tabelle lesen, pointer einfach +r21:
2
ldi    ZL, LOW(lambdawerte*2)
3
ldi    ZH, HIGH(Lambdawerte*2)
4
clr    r16
5
add    ZL, r21
6
adc    ZH, r16 ;only carry
7
lpm
8
mov    r21, r0 ;Wert aus tabelle an R21 und somit LCD übergeben

die Tabelle dazu (nur ein Ausschnitt, sind rund 240 Werte):
1
; Daten für die Lambda-Anzeige
2
;Lambda , Spannung
3
;  /100 ,  /100 V
4
;
5
lambdawerte:
6
.DB 121 ; 0
7
.DB 121 ; 1
8
.DB 120 ; 2
9
.DB 120 ; 3
10
.DB 119 ; 4
11
.DB 118 ; 5
12
.DB 117 ; 6
13
.DB 117 ; 7
14
.DB 116 ; 8
15
.DB 116 ; 9
16
.DB 115 ; 10
17
.DB 115 ; 11
18
.DB 114 ; 12
19
.DB 113 ; 13
20
.DB 112 ; 14
21
.DB 112 ; 15
22
.DB 111 ; 16
23
.DB 111 ; 17
24
.DB 110 ; 18
25
.DB 110 ; 19
26
.DB 109 ; 20
27
.DB 108 ; 21
28
.DB 108 ; 22
29
.DB 107 ; 23
30
.DB 107 ; 24
31
.DB 106 ; 25
32
.DB 106 ; 26
33
.DB 106 ; 27
34
.DB 105 ; 28

So, natürlich funktioniert das ganze nicht, sonst würde ich keinen neuen 
Beitrag starten :).
er zeigt mir, wenn ich die Werte einlese, immer den Wert 0 oder 117 aus 
der Tabelle an, obwohl ich irgendwo in der Mitte stehen sollte.
so, nun wo liegt der Fehler?
muss ich das R21 mit 2 Multiplizieren und dann zum pointer addieren?
- habe ich schon probiert, funktioniert allerdings auch nicht.
oder habe ich etwas grundlegendes an der Tabelle falsch gemacht?

Ich Danke euch schonmal im voraus für eure Hilfe.

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