Leider funktioniert das ganze nicht so. Wenn ich z.B. in Menü 0 die
Taste A2 drücke springt er nicht wie gewünscht auf Menü 3.
Vielleicht findet ihr den Fehler. Danke schonmal!
Gruß,
Patrick
Patrick Franken schrieb:
> Vielleicht findet ihr den Fehler. Danke schonmal!
Dein Fehler ist, dass du die Menüdaten komplett ins Flash ausgelagert
hast, beim Zugriff auf die Daten dies aber nicht berücksichtigst.
Wow, vielen Dank für die super schnelle Antwort! Es funktioniert jetzt.
Habe aber noch eine kleine Frage im Bezug auf den Function Pointer im
Struct:
Wie kann man die Funktionen aufrufen?
Habe es schon mit
1
(*menue[menu_counter].fp)();
versucht, was aber leider nicht funktionierte. Wenn ich die Funktion
sofort aufrufe funktioniert es hingegen.
Gruß,
Patrick
Hm... Weis keiner was? Hab schon alles getestet, aber es geht nicht :-(
Der µC bleibt übrigends hängen, wenn die Funktion über den Pointer
aufgerufen würd.
Patrick Franken schrieb:
> Hm... Weis keiner was? Hab schon alles getestet, aber es geht nicht :-(
Schon ein starkes Stück, wenn man dir zu erklären versucht, dass ALLES,
was du von menu holst, über read_pgm_xxx gemacht werden muss, du zum
AUsdruck bringst es verstanden zu haben und dann ein paar Stunden später
schon wieder denselben Fehler machst und ihn nicht erkennst.
const MENU_ENTRY menue[] PROGMEM= {
das komplette menue liegt im Flash!
Egal, was du von dort lesen willst, du musst
* festlegen, von welcher Adresse du lesen willst
* einen read_pgm_xxx Aufruf machen, damit der Lesezugriff von dieser
Adresse im Flash und nicht im SRAM passiert.