www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Menüstruktur


Autor: art (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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-Refe...

Autor: art (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Wegstaben Verbuchsler (wegstabenverbuchsler)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: D. S. (jasmin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wieso hilft Ihm dann keiner einfach weiter ???

Autor: Wegstaben Verbuchsler (wegstabenverbuchsler)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: art (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: P. S. (Gast)
Datum:

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

Autor: art (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: fast so (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.