Danke Jörg, aber die Matrizen werden auf einem PC mit einem
CoputeralgebraProgramm vorberechnet und dann etwas formatiert und in
meiner config.c eingebunden. Sie sind also zur kompletten Laufzeit des
Programms fest.
Ich hatte mittlerweile versucht das Beispiel aus dem libc manual
nachzubauen:
1 | char string_1[] PROGMEM = "String 1";
|
2 | char string_2[] PROGMEM = "String 2";
|
3 | char string_3[] PROGMEM = "String 3";
|
4 | char string_4[] PROGMEM = "String 4";
|
5 | char string_5[] PROGMEM = "String 5";
|
Then use the new symbols in your table, like so:
1 | PGM_P string_table[] PROGMEM =
|
2 | {
|
3 | string_1,
|
4 | string_2,
|
5 | string_3,
|
6 | string_4,
|
7 | string_5
|
8 | };
|
Auslesen wollte ich dann per:
1 | myChar=pgm_read_byte_far((PGM_P)pgm_read_word(&(string_table[i]))[j]);
|
Allerdings meckert er jetzt" pointer targets in init differ in
signedness".
Selbst wenn der pointer "signed int" ist, muss er doch immer noch
+32Kbyte adressieren können.Also sollte das für eine Zeile der MAtrix
reichen, oder hab ich was flasch verstanden?
Gruss
Stefan