Forum: Mikrocontroller und Digitale Elektronik Menüprogrammierung Quellen


von Oliver S. (streetfish)


Lesenswert?

Hallo,

Ich schreibe gerade meine Bachelorarbeit und musste in diesem 
Zusammenhang ein Menü auf meinem Mikrocontroller implementieren. In 
diesem Beitrag:
Beitrag "Menü Programmierung" stellt (kbuchegg) 
https://www.mikrocontroller.net/user/show/kbuchegg
ein praktisches Menüsystem vor, an das sich meinen Code angelehnt habe. 
Kennt jemand zu diesem Menüsystem einen Artikel den ich zitieren kann?

von A. S. (Gast)


Lesenswert?

Als Quelle geht vermutlich nur der Thread. Es ist ja eher eine 
Skizzierung allgemeiner Erfahrung. Kein System was jetzt so verwendet 
wird. oder im Gegenteil, ein System wie es viele vorher und nachher 
ähnlich entwickelt haben.

Den Autor hast Du schon angeschrieben?

von W.S. (Gast)


Lesenswert?

Oliver S. schrieb:
> Ich schreibe gerade meine Bachelorarbeit und musste in diesem
> Zusammenhang ein Menü auf meinem Mikrocontroller implementieren.

Und?

Ist das benötigte Menü ganz deutlich eine Nebenangelegenheit oder gehört 
es mit zum Kernthema deiner Arbeit?

Im ersteren Falle reicht wohl als Quellangabe der betreffende Thread, im 
letzteren Falle solltest du eher die Prinzipien erläutern und daraus ein 
für deinen Fall passendes Menü entwickeln. Das kann sich an Bucheggers 
Ideenskizze anlehnen, muß es aber nicht. Aber du sollst sowas nicht 
einfach abkupfern (das ist keine wissenschaftliche Leistung!), sondern 
selbst die Prinzipien ausgearbeitet, verstanden und erläutert haben.

Bedenke mal, daß die vorgelegte Schrift zu einer wissenschaftliche 
Arbeit mal ganz grob gesagt etwas sein soll, was dem Leser die 
Prinzipien erklärt, die Arbeit erklärt, deren Ergebnisse nachvollziehbar 
beschreibt und die daraus sich ergebenden Erkenntnisse darstellt.

In deinem Falle hängt das ganze Konstrukt davon ab, was du für ein 
Interface vorsiehst: grafisch oder rein textuell, ein- mehr- vielzeilig 
oder grafisch-koordinatenorientiert, monochrom oder bunt, Tasten oder 
Drehgeber oder Zeigegeräte und so weiter. Daraus ergibt sich dann auch 
die innere Darstellung, also ob als lineare Liste von Datensätzen oder 
als verknüpfte Objekte (oder Quasi-Objekte, wenn in C).

Ich hatte vor über 20 Jahren so etwa folgende Struktur für ein rein 
textuelles zweizeiliges LCD benutzt:
1
struct MenuRec
2
  { char* MenueText;
3
    char  Flags;
4
    void (*onRauf)(void);   /* was bei RAUF auszufuehren ist */
5
    void (*onEnter)(void);  /* was bei ENTER auszufuehren ist */
6
    void (*onRunter)(void); /* was bei RUNTER auszufuehren ist */
7
    int   beiEnter;         /* naechste Menueposition bei ENTER */
8
    void* VarPtr;           /* Zeiger auf zu bearbeitende Variable */
9
  };
10
11
/* Bits fuer das Flag-Byte in der Menueliste */
12
#define  Erster     1
13
#define  Letzter    2
14
... hier evtl. weitere Flags
15
16
/* Standardfunktionen für das Menü */
17
void Darstellen (int Nummer);
18
void nix        (void);
19
void Mehr       (void);
20
void Weniger    (void);
21
22
const struct MenuRec Menue [soviel wie nötig] =
23
{  //... hier das eigentliche Menü im Flash
24
  {    // Menüpunkt 0
25
26
  },
27
  {    // Menüpunkt 1
28
29
  }, ...usw.
30
};
Sowas kannst du auch als Anregung nehmen, meine Prinzipien waren eher 
so, daß ich nach Zusammenfassung getrachtet habe, also bei Menüpunkten, 
wo man irgendwelche Werte verändern kann, überall die gleichen 
Funktionen Mehr() und Weniger() benutzen zu können, wobei diese auf die 
Variable arbeiten, die durch Menue[aktuellerMenuepunkt].VarPtr angezeigt 
sind. Das ganze Menü ist dabei ein einziges Array und der Anfang und das 
Ende eines Untermenüs wird durch die Flagwerte Erster und Letzter 
angezeigt. Und wenn du willst, kannst du den Eintrag "MenueText" durch 
einen Struct aus Textzeigern ersetzen, die dein Menü in verschiedenen 
Sprachen anzeigen. Obendrein wäre der Einsatz eines kleinen Text-Parsers 
sinnvoll, um in den Menütexten den Inhalt der jeweiligen Variablen 
anzuzeigen.
Sowas wie "Heute ist der $T.$M.$J und es ist $W" wird dann
"Heute ist der 12.1.2021 und es ist Dienstag"

W.S.



W.S.

von Jetzt weg mit dem Troll (Gast)


Lesenswert?

Der Standardansatz ist eine Zustandsmaschine.

von Oliver S. (streetfish)


Lesenswert?

ja, der autor ist leider inaktiv, oder meine mail kommt nicht durch.

von Oliver S. (streetfish)


Lesenswert?

Ist nur eine Nebenangelegenheit, also passt das mit der Quellenangabe. 
Danke für die ausführliche Antwort.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.