Hallo,
obwohl ich jetzt die Suche schon stark emüht habe, komme ich leider an
einer Stelle nicht weiter.
Ich habe in der Array menu eine Funktion hinterlegt und möchte diese nun
aufrufen. Wie schaffe gelingt es die im Flash gespeicherte Adresse an
einen Funktionspointer zu übergeben bzw. einen Funktionspointer daraus
zu generieren. Die Textausgabe funktioniert ohne Probleme.
Danke
gruß Marcus
1 | typedef void (*VoidFnct)(int);
|
2 |
|
3 | global menu_posing; // wird von Interrupts manipuliert
|
4 |
|
5 | typedef struct { // Structure fürs Menü
|
6 | const char *text;
|
7 | [...]
|
8 | VoidFnct function;
|
9 | } MENU_ENTRY ;
|
10 |
|
11 | const MENU_ENTRY menue[] PROGMEM= { // Menü array
|
12 | [...]
|
13 | { menu_str_1, 0,10, 3, 1, start_child},//2
|
14 | [...]
|
15 | };
|
16 |
|
17 | void start_child (int menu_posing) { // diese Soll jetzt nun den Text
|
18 | lcd_clear(); // ausgeben und die Funktion aufrufen
|
19 | help_ptr = pgm_read_word(&(menue[menu_posing].text));
|
20 | lcd_string_p(help_ptr);
|
21 |
|
22 | // Hier ist das Problem!
|
23 | (pgm_read_word(&(menue[menu_posing].function)))(menu_posing);
|
24 |
|
25 | }
|