Daten aus EEPROM für Menu verwenden

OP #1039073
Hallo ich bin zur Zeit an einem Projekt beschäftigt, wobei ich 
Datensätze aus einem I²C-EEPROM in einem LCD-Menu auflisten muss. Ich 
verwende dabei einen ATmega644 mit dem Menusystem tinymenu. Ein 
(Sub-)Menu wird z.B. folgendermaßen deklariert:
1
menu_t sub1_menu = {
2
   .top_entry = 0,
3
   .current_entry = 0,
4
   .entry =  {
5
      {.flags = 0,
6
       .select = my_select,
7
       .name = "s2",
8
       .value = 0,
9
      },
10
      {.flags = 0,
11
       .select = my_select,
12
       .name = "s3",
13
       .value = 0,
14
      },
15
      {.flags = 0,
16
       .select = my_select,
17
       .name = "s4",
18
       .value = 0,
19
      },
20
   },
21
   .num_entries = 3,
22
   .previous = NULL,
23
};

Nun könnte ich natürlich beim Einsteigen in jedes Submenu, das struct 
schreiben. Aber dann ist ein Großteil des RAMs vollgeschrieben, oder 
womöglich passt gar nicht alles rein. Hat also jemand einen Tipp, wie 
ich am besten die Daten aus dem EEPROM aufs LCD bekomme? Normalerweise 
würde man ja LCD-Texte im PROGMEM speichern, aber da ich die Datensätze 
im EEPROM ständig verändere, fällt die Möglichkeit wohl aus... Hab ich 
das Problem verständlich beschrieben?

Vielen Dank im Vorraus, Sven
was genau liest du aus dem EEPROM? Die Menü-Texte? Oder die Parameter?

Ich verstehe das Problem nicht ganz.
Die Menü-Struktur würde ich als konstant deklarieren.
Und die EEPROM Werte würde ich bei Bedarf aus dem EEPROM ins RAM laden 
und dann darstellen.

Warum möchtest du denn alle(?) EEPROM Werte im RAM puffern? Sie dienen 
doch nur zur Darstellung, oder?
OP
Also das Ganze ist eine Art Fernbedienung, sie enthält eben auch ein 
LCD. Im EEPROM stehen in einem 18-Byte-langen Datensatz 1 Statusbyte, 2 
Datenbytes und 15 Textbytes. Ich muss nun also die 15 Textbytes aufs LCD 
packen und die anderen Bytes in einer Funktion verarbeiten... Ist das 
jetzt klarer geworden?

mfG, Sven

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.