www.mikrocontroller.net

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


Autor: Jonathan Craft (moepilator)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AVR-Studio, Hilfe, LPM-Befehl...

...

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Jonathan Craft (moepilator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, hat sich jetzt alles geklärt, trotzdem danke!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.