Wie kriege ich Strukturen ins flash die sich bieliebig gegenseitig
anpointen?
Ich kann ja nicht vor-deklarieren und dann inizialisieren, muss ja const
sein fürs PROGMEM
1
// PC-Programm
2
3
#include<stdio.h>
4
#include<stdlib.h>
5
6
typedefstructsomething{
7
intx;
8
inty;
9
conststructsomething*p;
10
}something;
11
12
// a,b,etc. sollen mal Konstanten im flash vom avr sein (mit PROGMEM)
13
constsomethinga={1,2,&b};// <-- geht nicht, weil b ja noch nicht deklariert wurde
14
constsomethingb={3,4,&a};
15
16
intmain()
17
{
18
printf("a hat: (%i,%i) und b hat: (%i,%i)\n",a.x,a.y,b.x,b.y);
@ ShadowX.H. (Gast)
>Wie kriege ich Strukturen ins flash die sich bieliebig gegenseitig>anpointen?
So wie du es vorgeschlagen hast.
>Ich kann ja nicht vor-deklarieren und dann inizialisieren, muss ja const>sein fürs PROGMEM
Das kommnt erst beim DEFINIEREN! Die DEKLARATION hat kein PROGMEM.
Hast du es einfach mal ausprobiert?
printf("a hat: (%i,%i) und b hat: (%i,%i)\n",a.x,a.y,b.x,b.y);
18
printf("y von a ueber b ist: %i",b.p->y);
19
printf("x von b ueber a ist: %i",a.p->x);
20
21
return0;
22
}
Wobei in diesem Beispiel im Genensatz zu pgm_read überhaupt nicht mehr
aus dem Flash gelesen wird / werden muß, weil der Compiler bereits alle
Werte kennt.
Bekommt man das auch so hin, daß a und b static sind?