DerSchatten
07.02.2010, 20:02
Ich möchte mir gerne ein simples LCD-Menü erstellen.
In den meisten Infos die ich gesammelt habe wird erwähnt das man das am besten mittels Pointer realisiert.
Diesbezüglich habe ich mir mal folgendes zusammengestellt:
// LCD-Menüeinträge definieren
// ===========================
const char menu_000[] PROGMEM = " Multifunktions "; // 0
const char menu_001[] PROGMEM = "ArcadeController"; // 1
const char menu_002[] PROGMEM = "** HAUPTMENUE **"; // 2
const char menu_100[] PROGMEM = "Tastenzuordnung>"; // 3
const char menu_101[] PROGMEM = "[X ] 1"; // 4
const char menu_102[] PROGMEM = "[XX ] 2"; // 5
const char menu_103[] PROGMEM = "[XXX ] 3"; // 6
const char menu_104[] PROGMEM = "[XXXX ] 4"; // 7
const char menu_105[] PROGMEM = "[XXXXX ] 5"; // 8
const char menu_106[] PROGMEM = "[XXXXXX ] 6"; // 9
const char menu_107[] PROGMEM = "[XXXXXXX ] 7"; // 10
const char menu_108[] PROGMEM = "[XXXXXXXX ] 8"; // 11
const char menu_109[] PROGMEM = "[XXXXXXXXX] 9"; // 12
const char menu_200[] PROGMEM = "<Dauerfeuer >"; // 13
const char menu_201[] PROGMEM = "[ ] 0"; // 14
const char menu_202[] PROGMEM = "[X ] 1"; // 15
const char menu_203[] PROGMEM = "[XX ] 2"; // 16
const char menu_204[] PROGMEM = "[XXX ] 3"; // 17
const char menu_205[] PROGMEM = "[XXXX ] 4"; // 18
const char menu_206[] PROGMEM = "[XXXXX ] 5"; // 19
const char menu_207[] PROGMEM = "[XXXXXX ] 6"; // 20
const char menu_208[] PROGMEM = "[XXXXXXX ] 7"; // 21
const char menu_209[] PROGMEM = "[XXXXXXXX ] 8"; // 22
const char menu_210[] PROGMEM = "[XXXXXXXXX] 9"; // 23
const char menu_300[] PROGMEM = "<System >"; // 24
const char menu_301[] PROGMEM = "LCD >"; // 25
const char menu_302[] PROGMEM = "<LED-Test "; // 26
const char menu_400[] PROGMEM = "<Speichern >"; // 27
const char menu_500[] PROGMEM = "<Beenden "; // 28
typedef struct def_menustruktur
{
const unsigned char *text;
struct def_menustruktur* next;
struct def_menustruktur* previous;
struct def_menustruktur* sub;
struct def_menustruktur* up;
void (*funktion)(void);
}menustruktur;
void tastenzuordnung(void);
void dauerfeuer(void);
void lcd(void);
void led(void);
void speichern(void);
void beenden(void);
// Tabelle von Zeigern auf die Texte erstellen
// ===========================================
menustruktur menu[] PROGMEM =
{
{menu_100, 13, 3, 4, 3, },
{menu_101, 5, 4, 3, 3, tastenzuordnung},
{menu_102, 6, 4, 3, 3, tastenzuordnung},
{menu_103, 7, 5, 3, 3, tastenzuordnung},
{menu_104, 8, 6, 3, 3, tastenzuordnung},
{menu_105, 9, 7, 3, 3, tastenzuordnung},
{menu_106, 10, 8, 3, 3, tastenzuordnung},
{menu_107, 11, 9, 3, 3, tastenzuordnung},
{menu_108, 12, 10, 3, 3, tastenzuordnung},
{menu_109, 12, 11, 3, 3, tastenzuordnung},
{menu_200, 24, 13, 14, 13, },
{menu_201, 15, 14, 13, 13, dauerfeuer},
{menu_202, 16, 14, 13, 13, dauerfeuer},
{menu_203, 17, 15, 13, 13, dauerfeuer},
{menu_204, 18, 16, 13, 13, dauerfeuer},
{menu_205, 19, 17, 13, 13, dauerfeuer},
{menu_206, 20, 18, 13, 13, dauerfeuer},
{menu_207, 21, 19, 13, 13, dauerfeuer},
{menu_208, 22, 20, 13, 13, dauerfeuer},
{menu_209, 23, 21, 13, 13, dauerfeuer},
{menu_210, 23, 22, 13, 13, dauerfeuer},
{menu_300, 27, 24, 25, 24,},
{menu_301, 26, 25, 24, 24, lcd},
{menu_302, 26, 25, 24, 24, led},
{menu_400, 28, 27, 27, 27, speichern},
{menu_500, 28, 27, 28, 28, beenden}
};
So ganz funktioniert das leider noch nicht.
Kann mir da jemand weiterhelfen?
In den meisten Infos die ich gesammelt habe wird erwähnt das man das am besten mittels Pointer realisiert.
Diesbezüglich habe ich mir mal folgendes zusammengestellt:
// LCD-Menüeinträge definieren
// ===========================
const char menu_000[] PROGMEM = " Multifunktions "; // 0
const char menu_001[] PROGMEM = "ArcadeController"; // 1
const char menu_002[] PROGMEM = "** HAUPTMENUE **"; // 2
const char menu_100[] PROGMEM = "Tastenzuordnung>"; // 3
const char menu_101[] PROGMEM = "[X ] 1"; // 4
const char menu_102[] PROGMEM = "[XX ] 2"; // 5
const char menu_103[] PROGMEM = "[XXX ] 3"; // 6
const char menu_104[] PROGMEM = "[XXXX ] 4"; // 7
const char menu_105[] PROGMEM = "[XXXXX ] 5"; // 8
const char menu_106[] PROGMEM = "[XXXXXX ] 6"; // 9
const char menu_107[] PROGMEM = "[XXXXXXX ] 7"; // 10
const char menu_108[] PROGMEM = "[XXXXXXXX ] 8"; // 11
const char menu_109[] PROGMEM = "[XXXXXXXXX] 9"; // 12
const char menu_200[] PROGMEM = "<Dauerfeuer >"; // 13
const char menu_201[] PROGMEM = "[ ] 0"; // 14
const char menu_202[] PROGMEM = "[X ] 1"; // 15
const char menu_203[] PROGMEM = "[XX ] 2"; // 16
const char menu_204[] PROGMEM = "[XXX ] 3"; // 17
const char menu_205[] PROGMEM = "[XXXX ] 4"; // 18
const char menu_206[] PROGMEM = "[XXXXX ] 5"; // 19
const char menu_207[] PROGMEM = "[XXXXXX ] 6"; // 20
const char menu_208[] PROGMEM = "[XXXXXXX ] 7"; // 21
const char menu_209[] PROGMEM = "[XXXXXXXX ] 8"; // 22
const char menu_210[] PROGMEM = "[XXXXXXXXX] 9"; // 23
const char menu_300[] PROGMEM = "<System >"; // 24
const char menu_301[] PROGMEM = "LCD >"; // 25
const char menu_302[] PROGMEM = "<LED-Test "; // 26
const char menu_400[] PROGMEM = "<Speichern >"; // 27
const char menu_500[] PROGMEM = "<Beenden "; // 28
typedef struct def_menustruktur
{
const unsigned char *text;
struct def_menustruktur* next;
struct def_menustruktur* previous;
struct def_menustruktur* sub;
struct def_menustruktur* up;
void (*funktion)(void);
}menustruktur;
void tastenzuordnung(void);
void dauerfeuer(void);
void lcd(void);
void led(void);
void speichern(void);
void beenden(void);
// Tabelle von Zeigern auf die Texte erstellen
// ===========================================
menustruktur menu[] PROGMEM =
{
{menu_100, 13, 3, 4, 3, },
{menu_101, 5, 4, 3, 3, tastenzuordnung},
{menu_102, 6, 4, 3, 3, tastenzuordnung},
{menu_103, 7, 5, 3, 3, tastenzuordnung},
{menu_104, 8, 6, 3, 3, tastenzuordnung},
{menu_105, 9, 7, 3, 3, tastenzuordnung},
{menu_106, 10, 8, 3, 3, tastenzuordnung},
{menu_107, 11, 9, 3, 3, tastenzuordnung},
{menu_108, 12, 10, 3, 3, tastenzuordnung},
{menu_109, 12, 11, 3, 3, tastenzuordnung},
{menu_200, 24, 13, 14, 13, },
{menu_201, 15, 14, 13, 13, dauerfeuer},
{menu_202, 16, 14, 13, 13, dauerfeuer},
{menu_203, 17, 15, 13, 13, dauerfeuer},
{menu_204, 18, 16, 13, 13, dauerfeuer},
{menu_205, 19, 17, 13, 13, dauerfeuer},
{menu_206, 20, 18, 13, 13, dauerfeuer},
{menu_207, 21, 19, 13, 13, dauerfeuer},
{menu_208, 22, 20, 13, 13, dauerfeuer},
{menu_209, 23, 21, 13, 13, dauerfeuer},
{menu_210, 23, 22, 13, 13, dauerfeuer},
{menu_300, 27, 24, 25, 24,},
{menu_301, 26, 25, 24, 24, lcd},
{menu_302, 26, 25, 24, 24, led},
{menu_400, 28, 27, 27, 27, speichern},
{menu_500, 28, 27, 28, 28, beenden}
};
So ganz funktioniert das leider noch nicht.
Kann mir da jemand weiterhelfen?