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.
>wie man Peripherie und LCD Menü miteinnander verbindet
Was möchtest du uns damit sagen?
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.
>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.
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
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.
>-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.
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.
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.
Freut mich, sowas interessierte mich auch - also die effektive Verarbeitung und Anlage von Menüstrukturen. Klaus.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.