const char aa[] PROGMEM = "xyz"; gibt warnung: ../Frogga.c:107: warning: `__progmem__' attribute ignored Warum?
Kontext? Ich könnte mir vorstellen, dass du das mit einer Variable der storage class "auto" versucht hast, das kann nicht funktionieren.
Kontext?? void foo(void) { const char aa[] PROGMEM = "xyz"; } Das ist eine ganz normale Funktion. "Auto" habe ich explizit nichts gemacht.
Das ist aber eine Variable der storage class "auto" - die wird auf dem Stack angelegt. Das passiert mit jeder nichtstatischen Variablen, die innerhalb eines Blockes angelegt wird. Und damit geht PROGMEM nicht. Wie auch, der Stack liegt ja nicht im Flash ...
Rein theoretisch müsste es doch funktionieren, die Variable außerhalb einer Funktion anzulegen. Natürlich gilt sie dann über das gesamte Programm. PS: Statische Variablen behalten doch ihren Wert.. Selbst wenn die Funktion, in der sie angelegt werden, endet.
Nicht nur theoretisch. Nichtautomatische Variablen (statische innerhalb eines Blockes) oder globale innerhalb eines Modules (statische außerhalb jedes Blockes) oder globale auch über mehrere Module (als Linkersymbol sichtbar) funktionieren alle gleichermaßen mit progmem.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.