Menü auf Graphik LCD

Gast #1024130
Ich weis das dieses Thema schon oft behandelt wurde doch ich find nichts 
was bei mir ein Licht aufgehen lässt.
Deshalb wollte ich Fragen ob jemand Ansätze oder Links kennt/hat wie man 
Peripherie und LCD Menü miteinnander verbindet. Wie man ein Menü Aufbaut 
und das am besten mit guter Erklärung. Ich steh nämlich aufm Schlauch.
Gast #1024868
Ich haben z.B. ein Chip(RTC....) über I2C und ein Menü in dem es die 
Funktionen Einstellung und Anzeigen wie verbinde ich das jetzt mit dem 
Menü und der RTC wenn ich was im Menü mache.
Gast #1024883
>wie verbinde ich das jetzt mit dem
>Menü und der RTC wenn ich was im Menü mache.

Das macht jeder Programmierer so wie es ihm
gerade einfällt. Da gibt es keine Standardrezepte.
#1025000
Hallo AVRandLCD,
wie der Holger schon anmerkt - da gibt's keine einheitliche Lösung. Ich 
persönlich weise jedem Menüpunkt einen Index zu, der bei Auswahl eine 
bestimmte Aktion auslöst (Peripherie de-,aktivieren etc.). D.h. je nach 
Programmstatus (das kann man prima mit Tabellen realisieren) wird in 
Abhängigkeit des ausgewählten Index eine, oder mehrere Systemaktion(en) 
ausgelöst. Dazu zählt natürlich auch die graphische Darstellung weiterer 
Menüebenen...
Wenn du in Assembler etwas geübt bist, kannst du dir ja gerne das 
<http://www.mikrocontroller.net/articles/AVR_MSR-System>; ansehen. Hier 
sind einige zig' Menüs verschachtelt, wobei besonders die files 
[_+_memBtable.inc]&[+DYNsetupA_TE] das Thema verdeutlichen...

Gruß
Marcus
Gast #1025034
Also z.B. in MAIN wählst du einen Hauptpunkt und dann gehst zu zur 
zugehörigen Funktion in der du dann Unterpunkte des Menüs wählst und 
darstellt gleichzeitig die dazugehörige Fiúnktion z.B. en Sound 
abspielen bedienst.

Mein Problem liegt nämlich hier mit dem Menü ich hab eine Funktion die 
z.B. zwei Lieder abspielen kann in meinem Menü:
-Song1
-Song2
-Lautstärke
Hier würde ich dann über Buttons eines wählen nur wie bring ich das 
gewählte auf dem LCD mit der Funktion die den Sound abspielt zusammen.
Gast #1025053
>-Song1
>-Song2
>-Lautstärke

>Hier würde ich dann über Buttons eines wählen nur wie bring ich das
>gewählte auf dem LCD mit der Funktion die den Sound abspielt zusammen.

if menu selected line1 play sound1
if menu selected line2 play sound2
if menu selected line3 Lautstärke einstellen

In Pseudocode.
Das dumme ist nur das du ganz und gar keine Ahnung
hast. Und niemand hier kann dir dabei helfen
ein Programmierer zu werden. Da musst du schon selber durch.
Gast #1025752
Nur mal halblang ich bin kein Anfänger auf das if zeug bin ich auch 
schon gekommen nur das scheint mir keine elgante lösung zu sein. ich hab 
mir mal den code des butterfly angesehen aber nichts in der richtung 
gefunden. und assembler kann ich leider nicht so gut um das MSR-System 
ausreichend lesen, verstehen zu können.
Gast #1025756
ICh glaube ich habe etwas dementsprechendes gefunden. Ich dachte von 
Anfang an das man dabei viel mit Pointern arbeiten muss. Jetzt habe ich 
eine Idee ohne if-else mal sehn wies im code dann aussieht. ich werds 
dann posten wenn ich zu papier gebracht habe.
#1025780
Normalerweise Löst man das über einen Zustandsautomaten,
http://de.wikipedia.org/wiki/Virtueller_endlicher_Automat

letztlich ist das eine große case-Anweisung und eine Variable, die den 
aktuellen Zustand repräsentiert.

select STATE
case p1:
playSound1;
if(button1pressed)
STATE=p2;
return;
case p2:
...
return;

In den einzelnen cases werden also sowohl Anweisungen ausgeführt, als 
auch der Zustand geändert.

So kann man elegant dafür sorgen, daß je nach Menüpunkt die gleiche 
Taste eine andere Funktion hat.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.