PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD Menü



Sany
12.06.2009, 19:47
Hallo,

Hab hier einen Code aus einem Forum, nur leider gibt es wohl den Thread ersteller nicht mehr, daher hab ich nun Probleme mit folgendem Code:



typedef prog_char menuCap_t; // Titeltext im Flash
typedef const menuCap_t* PROGMEM menuCap_a; // array von Titeltexten im Flash

typedef struct {
const menuCap_t* caption;
const uint8_t type;
const prog_void* func;
} menuSub_t PROGMEM;

typedef struct {
const menuCap_t* caption; // Title
const uint8_t count;
const menuSub_t items[];
} menuDef_t PROGMEM;

typedef uint8_t (*menuFunc_t)(const menuDef_t* menu, uint8_t index, uint8_t event); // callback
extern uint8_t menuProcess(const menuDef_t* menu);




menuCap_t mcMain[] = "Hauptmenue";
menuCap_t mcProperties[] = "Einstellungen";
menuCap_t mcSecurity[] = "Sicherheit";

menuDef_t mmMain = {mcMain, 0, {{ mcProperties, 0, 0},{ mcSecurity, 0,0}}};



So ist der Originalcode von Ihm, mein AVR Studio meldet mir jedoch folgendes beim Compilieren:

../control.c:45: error: non-static initialization of a flexible array member
../control.c:45: error: (near initialization for 'mmMain')

Die Zeilen nummern stimmen nicht mehr, aber es handelt sich um diese Zeile:



menuDef_t mmMain = {mcMain, 0, {{ mcProperties, 0, 0},{ mcSecurity, 0,0}}};


Könnte mir jemand weiterhelfen? ;)

sternst
13.06.2009, 12:43
Siehe Antwort auf mikrocontroller.net.