www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Lookuptabelle mit Integer Array


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Möchte eine Lookup-Tabelle verwenden.
Meine Deklaration sieht wie folgt aus:

uint16_t ana_value[] = {3258, 3232, ...., 122};

Leider sind die Initialwerte bei Laufzeit nicht richtig.
Ich verwende ein ATmega8 und AVR Studio 4.13.
Ich möchte das Array nicht mit einer Schleife während dem Ablauf des 
Programms initialisieren.

Hat jemand eine Idee?

Gruss & Dank Matthias

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Leider sind die Initialwerte bei Laufzeit nicht richtig.

Wie groß ist die Tabelle?
Wie sehen die Werte denn aus?
Womit hast Du das festgestellt?
Mal im Debugger nachgesehen?

Hast Du vor, die Werte zur Laufzeit zu verändern? Wenn nein, dann gehört 
die Tabelle ins Flash-ROM und nicht ins knappe RAM.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort.

Die Tabelle hat 360 16-Bit Integer. Diese Werte will ich nie ändern zur 
Laufzeit. Die Werte sind zufällige Werte.
Wenn ich einzelne Elemente zur Laufzeit überschreibe/initialisiere, dann 
stimmen diese dann.

-> "uint16_t ana_value[] = {3258, 3232, ...., 122};" klappt nicht.

Autor: I_ H. (i_h)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Denk dran, dass die Tabelle allein schon 640 Byte Speicher braucht.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Initialisierung sollte korrekt funktionieren, das klingt fast nach 
einem Compilerfehler.

Allerdings sind das 720 Bytes RAM, und der Mega8 hat nur 1024. 
Möglicherweise ist in Deinem Linkerskript die Sektion für initialisierte 
Variablen zu klein?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab nicht nur eine solche Tabelle, sondern gleich 2 Stück davon :-D
Das RAM ist zu 106.5% Full

Dies Erklärt einiges. Danke Für eure Hilfe.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Solche Tabellen packst Du besser ins Flash. Der Zugriff geht dann nur 
noch über Library-Funktionen (pgm_read_word?), schau mal in der 
libc-Doku nach.

Gruß, Stefan

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.