Hallo,
wollte auch einmal mich in den Zugriff von Variablen welche mit __flash
initialisiert sind einarbeiten und komme einfach nicht weiter. Hoffe
hier etwas Hilfe zu bekommen.
Es existieren 2 Array folgender Art.
1 | const __flash uint8_t array1[] = { 0x12, 0x34,...};
|
2 | const __flash uint8_t array2[] = { 0xaf, 0x63,...};
|
In einer Funktion möchte ich dann darauf zugreifen, indem ich einer
Variablen den Zeiger des benötigten Array übergebe.
1 | void foo(uint8_t auswahl)
|
2 | {
|
3 | uint8_t val1, val2, val3 ;
|
4 | const uint8_t *arr;
|
5 | if(auswahl == 1)
|
6 | arr = array1;
|
7 | else
|
8 | arr = array2;
|
9 |
|
10 | /* Nun würde hier der Zugriff erfolgen, doch da bekomme ich brauchbares wieder*/
|
11 | val1 = &arr[0];
|
12 | val2 = &arr[1];
|
13 | val3 = &arr[2];
|
14 |
|
15 | /* Das funktioniert auch nicht wie erhofft */
|
16 | val1 = arr++;
|
17 | val2 = arr++;
|
18 | val3 = arr++;
|
19 | }
|
Muss man da per pgm_read_byte zugreifen, ich denke das sollte sich mit
dem Schlüsselwort __flash erledigt haben?
Danke schonmal für die Hilfe