Forum: Mikrocontroller und Digitale Elektronik Bascom Lookup oder ähnliches


von Zaungast (Gast)


Lesenswert?

Hallo,
möchte für eine LCD Anzeige immer 6 Werte aus einer Tabelle o.ä. 
abfragen und einer Gruppe von x(1) bis x(6) zuordnen. Wie löst man das 
möglichst effizient?
Bei lookup müßte ich für jeden Wert eine einzelne Zuordnung schreiben, 
oder?
Gruß

von Gerhard W. (gerhard_w)


Lesenswert?

Also so ganz verstehe ich nicht, worauf Du raus willst.

>Bei lookup müßte ich für jeden Wert eine einzelne Zuordnung schreiben,
>oder?
Die Zuordnung mußt Du doch sowiso machen, egal ob Du mit If-Then 
arbeitest, oder aber mit Lookup.

Wie effizient das wird, kann man so pauschal nicht sagen. Lookup ist 
aber meist effizient was Codegröße, Übersichtlichkeit und Zeitaufwand 
angeht.

Erklär Dein anliegen mal etwas genauer, evtl. geht mir (uns) dann ein 
Licht auf.

von Zaungast (Gast)


Lesenswert?

Ich schreibe einen Triplex-Code für eine 4-stellige LCD-Anzeige. Daraus 
resultierte jeweils 6 Werte pro Ziffer. Diese sechs Werte müssen dann 
dem jeweiligen Digit zugeordnet werden. Nun möchte ich ungern jedesmal 
etwas wie
x(1)=zwei(1)
x(2)=zwei(2)
...
x(6)=zwei(6)
schreiben, sondern hätte gern eine pauschale Zuordnung, dass z. B. die 
x-Werte für den Moment den zwei-Werten entsprechen. Mit lookup läßt sich 
da immer nur ein Wert auslesen oder?

von Gerhard W. (gerhard_w)


Lesenswert?

Doch, geht schon.
Du mußt in der Tabelle immer die 6 Werte hintereinander schreiben. Dann 
brauchst Du noch eine Hilfsvariable, mit der Du die Position in der 
Tabelle berechnetst.
Die Formel schaut dann ungefähr so aus:
Tabellenposition = (Ziffer * 6) + X-Wert

Hoffe Du kannst mir einigermaßen folgen :-)

von Zaungast (Gast)


Lesenswert?

Ich glaube wohl. Das heißt allerdings auch hier wieder ein Befehl für 
jeden x-Wert, oder?

von Gerhard W. (gerhard_w)


Lesenswert?

so weit ich weiß, ja.
Die große Berechnug mußt Du aber nur einmal je Ziffer für den X-Wert 
machen. Für die nächsten reicht einfaches Inkrementieren.
Das ganze Konstrukt in eine For-Next-Schleife gepackt, und Du hast in 
weniger als 10 Zeilen die Aufgabe erledigt.

von Zaungast (Gast)


Lesenswert?

Jau, so gehts. Danke.

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.