Hey!
ich bin gerade dabei meine erstelltes (funktionsfähiges) Programm
modular zu gestellten und will somit Zeiger an Funktionen Übergeben, um
dort den Wert zu ändern.
Nur komme ich gerade mit dem initialisieren der Zeiger nicht klar. In
anderem Kontext benutze ich immer:
1 | int *px = new int;
|
2 | *px = 99;
|
Im Compiler vom AVR Studio von ist "new" jedoch nicht implementiert.
Muss ich dem Zeiger bewusst einen Speicherbereich aus dem Flash
zuweisen?
Wenn ja, wie finde ich heraus welche Adressen ich nehmen kann?
Mir wäre es am liebsten wenn der Compiler das zuweisen des Speichers
übernehmen könnte!
Das Folgende geht ja auch nicht, weil dann ja der Speicherbereich
garnicht klar ist...
1 | int main(void)
|
2 | {
|
3 | uint8_t *pstate, *pswReadSave;
|
4 | *pstate = 0;
|
5 | *pswReadSave = 0; //beide mit Startwert 0 initialisieren
|
6 | [...]
|
7 |
|
8 | while(1)
|
9 | {
|
10 |
|
11 | while (menu == 1)
|
12 | {
|
13 | sw_read (pstate, pswReadSave); //Zeiger an Funktionen übergeben
|
14 | main_menu(pstate);
|
15 | }
|
16 | }
|
17 | }
|
Gruß
Mike