Moin zusammen.
Ich möchte eine Datenstruktur in einem Atmega168 verwenden, es geht dabei um Sternenkarten, die ich nach der Form "1. Byte Index, 2.-21. Byte Name, 22.-38. Byte Daten" aufgebaut sind, es gibt ingesamt 22 Einträge, die ich am liebsten mit einer Variable zugreifen will. Zuerst hab ich an ein Array einer Struktur gedacht sozusagen:
typdef struct Karten{...};
Karten Sternbilder[22];
Dabei machte mir der GCC aber irgendwelche Striche durch die Rechnung. Dann wollte ich es als Array mit 22x37 Zeichen speichern, sodass ich die Karte mit der X-Koordinate auswähle, das Objekt dann mit der Y-Koordinate.
Das ganze sind Konstanten, ich benötige noch 2 dieser Strukturen als Variablen (ein Abbild der angezeigten Karte, ein Buffer).
Die Variablen lege ich natürlich im RAM ab, aber was mache ich am besten mit den Konstanten? Das EEPROM ist für den kompletten Datensatz zu klein, würde ich alles in den RAM legen und initialisieren lassen, wäre der schon damit zu 76% belegt.
Wie kann ich sowas schön im Flash ablegen und zugreifen?
Per Assembler wäre das kein Problem, damit weiß ich, was ich machen muss. Aber in C fehlt mir der beste Ansatz.
MfG
Björn