hallo zusammen,
ich versuche gerade ein string array auschliesslich im flash zu
belassen..habe aber so meine probleme. kann mir einer helfen? sollte so
aussehen:
das sollte nur im flash stehen:
const unsigned char stra[4][8]
{
"Test1",
"Test2",
"Test3",
"Test4"
};
und sollte ich es irgendwie wieder ausgeben sollen:
lcdputstring(stra[i][0]);
danke schon mal
mhh...genau das hab ich schon gesehen aber ich lege ja keine string im
flash ab sondern ein array...ich hab keine ahnung wie diesen blöde array
auschliesslich im flash abgelegt wird..
ich habe das mal so gemacht:
PGM_P unsigned char menu[4][8]
{
"Test1",
"Test2",
"Test3",
"Test4"
};
bekomme aber dann jede menge warnings:
lcdtest.c:15: warning: missing braces around initializer
lcdtest.c:15: warning: (near initialization for `menu[0]')
lcdtest.c:13: warning: unused variable `menu' <-- der ist klar
die frage ist jetzt wäre dann jetzt noch wie ich einen pointer auf eines
dieser felder erzeugen kann und an diese
__lpm_inline((unsigned short)addr++))) funktion übergeben kann
in meinem vorletzte post war ein fehler sieht so aus:
PGM_P menu[4][8]
{
"Test1",
"Test2",
"Test3",
"Test4"
};
und für die ausgabe so.
lcdputstrP(PSTR(menu[0][0]));
aber es klappt wie gesagt schon nicht mit dem anlegen im flash
ok...oh gott..:)..
hab das einfach mal mit PRG_RDB ausprobiert und es
funktioniert...:)....aber warum ist das in der docu nicht drin? ist auch
egal ich hab jetzt ein letztes problem und zwar hab ich ja jetzt mit
dieser zeile "PGM_P menu[4]" ein pointer generiert mein problem ist, das
ich zwar so mit dem arbeiten kann wie z.B PORTB = PRG_RDB(menu[0][2])
aber ich kann den nicht an eine funktion übergben wie z.b
machwas(menu[0][1]);
void machwas(unsigned char *data)
{
}
Hi
wieß einer wie jetzt nur einzelne Hex Werte auf die Gleiche Art
ablege...
const char foo[] PROGMEM = 0xff, 0xaa, 0xff, 0xaa;
so was funktioniert nicht
gruß
Kjion
Eine eigene Frage?
Dieser Thread ist über 23 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.