Hallo, ich habe schon lange nichts mehr in C programmiert. Nun möchte ich in meinem größeren Projekt ein Menü programmieren um Einstellungen vorzunehmen. Da sich die Reihenfolge noch ändert möchte ich die Initialisierung flexibel halten.
ich habe folgenden Programmcode geschrieben:
typedef enum test{
hk2_schpr,
hk2_pause,
hk2_party,
hk2_tag,
hk2_nacht,
hk2_betr,
ww_solltemp,
ww_betr,
ww_einmal,
zp_betr,
ascii,
}
ausw_menu_t;
ausw_menu_t ausw_aktuell=hk2_schpr; //0
menu_ems_buffer_t menu_ems_buffer[buffer_size];
void ausw_mark(uint8_t zeile);
void ausw_delmark(uint8_t zeile);
};
const rom char menu_txt[ausw_max+1][18] = {
{"HK2 Schaltprogr."}, //0
"HK2 Pause",
"HK2 Party",
"HK2 Temp Tag",
"HK2 Temp Nacht",
"HK2 Betr. Art",
"WW Solltemp",
"WW Betr. Art",
"WW Einmalladung",
"ZP Betriebsart",
"UBA MAX Leistung",
"ASCII Code" //11
};
//https://learntutorials.net/de/c/topic/4547/initialisierung
//int array[] = { [4] = 29, [5] = 31, [17] = 101, [18] = 103, [19] = 107, [20] = 109
Nun möchte ich das Array wie in learntutorials.net beschrieben initialisieren.
Dabei bekomme ich aber immer eine Syntax Error Meldung. Weiß jemand wie ich das bewerkstelligen kann? Folgende Zeilen gehen nicht:
const rom char menu_txt[ausw_max+1][18] = {
{[0]="HK2 Schaltprogr."}, //0
{[1] []="HK2 Pause"}
};
ich benutze den Compiler C18
Ich konnte das Feld leider nicht so initialisieren wie ich es wollte. Jetzt muss ich darauf achten, dass typedef enum test{..} und menu_txt[] zusammenpassen. Ansonsten funktioniert das Programm. Damit der Pic während der Menüauswahl noch die eigentliche Abläufe abarbeiten kann, werde ich das ganze im Hauptprogramm als Schleife (Automaten) immer wieder aufrufen. Um die einzelnen Schritte aufzuteilen werde ich evtl. noch eine zweite Ebene programmieren.