Ich möchte gerne in meiner Menüstruktur den aktuell angesprungenen
Untermenüpunkt ins EEPROM speichern.
Sodas beim nächsten Aufruf das LCD automatisch in diese Option springt.
Wie würdet ihr das anstellen?
Gibt es eine Möglichkeit die aktuelle Position in einer Tabelle
auszulesen?
Oder muß ich dazu einen weiteren Wert in meine Tabelle inkludieren der
mittels einer Zahl die aktuelle Menüposition ausgibt?
Die Struktur sieht momentan so aus:
1
typedefstructdef_menustruktur
2
{
3
constchar*text;
4
5
unsignedcharnext;
6
unsignedcharprevious;
7
unsignedcharsub;
8
unsignedcharup;
9
10
unsignedcharActionCode;
11
unsignedcharActionValue;
12
}menustruktur;
13
14
menustrukturmenu[]PROGMEM=
15
{
16
{menu_100,11,0,2,0,NO_ACTION,DEF_KEY_VALUE},
17
{menu_101,1,1,1,1,NO_ACTION,0},
18
{menu_102,3,2,0,0,DEF_KEY_ACTION,0},
19
{menu_103,4,2,0,0,DEF_KEY_ACTION,1},
20
{menu_104,5,3,0,0,DEF_KEY_ACTION,2},
21
{menu_105,6,4,0,0,DEF_KEY_ACTION,3},
22
{menu_106,7,5,0,0,DEF_KEY_ACTION,4},
23
{menu_107,8,6,0,0,DEF_KEY_ACTION,5},
24
{menu_108,9,7,0,0,DEF_KEY_ACTION,6},
25
{menu_109,10,8,0,0,DEF_KEY_ACTION,7},
26
{menu_110,10,9,0,0,DEF_KEY_ACTION,8},
27
{menu_200,23,0,13,11,NO_ACTION,DEF_REPEAT_VALUE},
28
{menu_201,12,12,12,12,NO_ACTION,0},
29
{menu_202,14,13,11,11,DEF_REPEAT_ACTION,0},
30
{menu_203,15,13,11,11,DEF_REPEAT_ACTION,12},
31
{menu_204,16,14,11,11,DEF_REPEAT_ACTION,11},
32
{menu_205,17,15,11,11,DEF_REPEAT_ACTION,10},
33
{menu_206,18,16,11,11,DEF_REPEAT_ACTION,9},
34
{menu_207,19,17,11,11,DEF_REPEAT_ACTION,8},
35
{menu_208,20,18,11,11,DEF_REPEAT_ACTION,7},
36
{menu_209,21,19,11,11,DEF_REPEAT_ACTION,6},
37
{menu_210,22,20,11,11,DEF_REPEAT_ACTION,5},
38
{menu_211,22,21,11,11,DEF_REPEAT_ACTION,4},
39
{menu_300,36,11,25,23,NO_ACTION,DEF_LCD_VALUE},
40
{menu_301,24,24,24,24,NO_ACTION,0},
41
{menu_302,26,25,23,23,LCD_ACTION,0},
42
{menu_303,27,25,23,23,LCD_ACTION,25},
43
{menu_304,28,26,23,23,LCD_ACTION,50},
44
{menu_305,29,27,23,23,LCD_ACTION,75},
45
{menu_306,30,28,23,23,LCD_ACTION,100},
46
{menu_307,31,29,23,23,LCD_ACTION,125},
47
{menu_308,32,30,23,23,LCD_ACTION,150},
48
{menu_309,33,31,23,23,LCD_ACTION,175},
49
{menu_310,34,32,23,23,LCD_ACTION,200},
50
{menu_311,35,33,23,23,LCD_ACTION,225},
51
{menu_312,35,34,23,23,LCD_ACTION,255},
52
{menu_400,40,23,38,36,NO_ACTION,DEF_LED_VALUE},
53
{menu_401,37,37,37,37,NO_ACTION,0},
54
{menu_402,39,38,36,36,LED_ACTION,1},
55
{menu_403,39,38,36,36,LED_ACTION,0},
56
{menu_500,41,36,40,40,SAVE_ACTION,0},
57
{menu_600,41,40,41,41,EXIT_ACTION,0}
58
};
Meine erste Überlegung war das ganze einfach so auszulesen:
1
indexTasten=menu_index;
Damit wird der aktuelle Menüpunkt gespeichert.
Die Variable menu_index wird laufend bei Tastendruck (navigation durchs
Menü) aktualisiert: