Forum: Mikrocontroller und Digitale Elektronik Datentabelle auslesen mit AVR Studio 4; atmega32


von Jonathan C. (moepilator)


Lesenswert?

Servus,
also, mein Vorhaben schaut folgendermaßen aus:

Ich möchte eine LED-Anzeige ähnlich von Laufschriften betreiben.
Da ich vor hatte, die Anzeige spaltenweise anzusprechen und eine Spalte 
7 LED's hoch werden sollte, reicht pro Spalte ein Byte.

Ich möchte die Bits parallel ausgeben und ich habe in diversen Beiträgen 
gelesen, dass man Tabellen mit Daten anlegen kann, deren Werte 
ausgelesen werden können.

Die Formatierung der Tabellen weiß ich auchnoch, optimalerweiße sollten 
diese ungefähr so aussehen:

Tab:
    .db [Binärwert], [Binärwert], [Binärwert], [Binärwert], [Binärwert]
    .db [Binärwert], [Binärwert], [Binärwert], [Binärwert], [Binärwert]

usw.

Ich wüsste jetzt gerne, wie ich die Tabelle Wert für Wert in ein 
Register laden kann. Das ganze vllt als kleines Beispiel mit 
Kommentaren, dann bin ich schon zufrieden, um den Rest kann ich mich 
selber kümmern.

Schonmal danke :-)

von Hannes L. (hannes)


Lesenswert?

AVR-Studio, Hilfe, LPM-Befehl...

...

von avr (Gast)


Lesenswert?

Schau mal bei LED-Fading und DDS-Sinussignal (Funktionsgenerator).

Bei beiden o.a. werden meist Tabellen verwendet.
Es gibt hierfür viele Beispiele in C und Assembler
im Forum, auch in den Artikeln.

avr

von Hannes L. (hannes)


Lesenswert?

Achja, das ist falsch:

> Tab:
>     .db [Binärwert], [Binärwert], [Binärwert], [Binärwert], [Binärwert]
>     .db [Binärwert], [Binärwert], [Binärwert], [Binärwert], [Binärwert]

Denn die Anzahl der Bytes je Zeile muss immer geradzahlig sein. Du hast 
5 Bytes je Zeile, da schiebt Dir der Assembler eine 0 unter. Denn der 
Flash ist word-orientiert, ein word hat zwei Bytes.

Der einzige Befehl, der den Flash byte-orientiert anspricht, ist (E)LPM. 
Und natürlich noch SPM, der funktioniert aber nur im Bootloaderbereich, 
ist also nix für Otto Normaluser.

...

von Jonathan C. (moepilator)


Lesenswert?

ok, hat sich jetzt alles geklärt, trotzdem 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.