Forum: Mikrocontroller und Digitale Elektronik Menüstruktur


von art (Gast)


Lesenswert?

hallo folgendes problem:
ich habe 4 pfeiltasten, und eine ok taste.
wenn die ok taste gedrückt wird soll ein 1. untermenü aufgemacht werden.
wenn danach nochmal die ok taste gedrückt wird soll es in das untermenü 
von dem 1. untermenü reinspringen.

ich habe schon folgendes programmiert:

struct menue
{
  char titel[15];
  char punkt1[15];
  char punkt2[15];
  struct menue *next;
};

struct menue *next = NULL;
struct menue *first = NULL;


void anhaengen(char *t, char *p1, char *p2)
{
lcd_clear();

   struct menue *pointer;

   if(first == NULL) {
     if((first = (struct menue *) malloc(sizeof(struct menue))) == NULL)
    {
         return;
      }
    set_cursor(0, 1);
      lcd_string (strcpy(first->titel, t));
    set_cursor(0, 2);
      lcd_string (strcpy(first->punkt1, p1));
    set_cursor(0,3);
      lcd_string (strcpy(first->punkt2, p2));
            first->next=NULL;
   }

else {
      pointer = first; /* Wir zeigen auf das 1. Element */
      while(pointer->next != NULL)
         pointer=pointer->next;
if((pointer->next =(struct menue *) malloc(sizeof(struct menue))) == 
NULL) {

          return;
      }
      pointer=pointer->next; /* zeiger auf neuen Speicherplatz */
      set_cursor(0, 1);
      lcd_string (strcpy(first->titel, t));
    set_cursor(0, 2);
      lcd_string (strcpy(first->punkt1, p1));
    set_cursor(0,3);
      lcd_string (strcpy(pointer->punkt2, p2));

    /* Wir terminieren wieder unsere Datenstruktur */
      pointer->next=NULL;
   }
}

int main()
{
  if ((debounce(&PIND, PD3))&&(zeile ==4)) //wenn ok taste gedrückt
                                           //und cursor in 4. zeile
                                           //dann folgende menü anzeigen
      anhaengen("Hauptmenue", "Modus waehlen", "Einstellungen");
}


ist nur ein ausschnitt aus meinem programm. aber alles wichtige ist 
vorhanden. ich brauch blos nur ne kleine hilfe wie ich jetzt von der 
ebene hauptmenü in die nächste menüebene komme. also entweder modus 
wählen oder einstellungen. und zwar nach dem wieder die ok taste 
gedrückt wurde.
kann mir da mal einer helfen?

von P. S. (Gast)


Lesenswert?

Ich verfolge das jetzt schon eine Weile und ich werde das Gefuehl nicht 
los, dass du nur rumprobierst und Beispielcode zusammenklebst, dir die 
Programmiergrundlagen aber voellig fehlen.

Da ich den Link sowieso noch im Paste-Buffer habe:

http://www.amazon.de/Programmieren-C-ANSI-2-C-Reference/dp/3446154973/ref=sr_1_1?ie=UTF8&s=books&qid=1222694734&sr=8-1

von art (Gast)


Lesenswert?

nein ich schnipsele keinen code mir zusammen, da ich das selber 
programmiert hab und zwar mit hilfe eines buches. blos ich steig nicht 
durch wie ich auf die nächste ebene komme.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

wenn du der gleiche art bist  wie der hier:

Beitrag "Gibt es listen in C wie in C++"

dann läßt mich mein Beitrag vom 29.09.2008 13:54 aber eher vermuten, daß 
du momentan noch ziemlich am schwimmen bist was die Methodik angeht

von D. S. (jasmin)


Lesenswert?

und wieso hilft Ihm dann keiner einfach weiter ???

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

> und wieso hilft Ihm dann keiner einfach weiter ???

nun, in dem anderen Thread wurde ja das ganze Menuegeschehen ausführlich 
diskutiert. Wenn es dann darum ginge eher die theoretischen Konzepte als 
die praktischen Codezeilen durchzuhecheln, wäre da eine gute 
Gelegenheit.

Das ist auch mein Tip an "art": Erst mal grundsätzlich verstehen, wie 
der Algorithmus funktionieren soll (losgelöst von einer konkreten 
Prgrammiersprache), und dann weiter verfeinern zu real existierenden 
Programmiersprachen

von art (Gast)


Lesenswert?

ich versteh den algorithmus und ich versteh das mit den listen was 
theorie angeht, aber an der umsetzung happert es, deswegen such ich 
hilfe, aber anscheinend will mir keiner so richtig helfen.

von P. S. (Gast)


Lesenswert?

Ja genau, wenn du was nicht begreifst, muessen die anderen schuld sein. 
Ein letzter Tip: Fange mit was Kleinerem an.

von art (Gast)


Lesenswert?

ich sage nicht das andere schuld sind, aber bin hierher gekommen in der 
hoffnung das mir geholfen wird. aber anscheinend nicht. naja muss mich 
dann selber durchkämpfen. falls jemand sich aber trotzdem entscheidet 
mir zu helfen wäre ich sehr dankbar.

von fast so (Gast)


Lesenswert?

Ein Menu macht man als Zusatndmaschine. Alles andere ist Schrott. 
Wichtig : Es wird nicht gewartet. Nirgends.
Eine Stufe tiefer : http://www.ibrtses.com/embedded/avrlcdmenu.html

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.