Hallo, ich habe das Forum nach meinem Problem durchsucht, aber irgendwie habe ich nicht die passenden Antworten gefunden. Ich weiß auch nicht, wonach ich gezielt suchen soll. :( Es geht um folgendes Problem: Ich habe an einen Mega32 ein LCD angeschlossen. Nun möchte ich ein Menü mit mehreren Submenüs erstellen und dieses auf dem LCD anzeigen lassen. Da das Menü sehr groß werden könnte und ich nicht jedes Mal bei einer Änderungen den C-Quelltext im AVR Studio 4 ändern und übertragen möchte, dachte ich mir, dass ein Einsatz einer Speicherkarte komfortabel wäre. Im Grunde möchte ich eine Ordnerstruktur auf dem PC erstellen, auf die Speicherkarte übertragen und mit dem Mega32 auf dem LCD-Display anzeigen lassen. Da das Display ein 4x16-zeiliges ist, kann ich jeweils nur vier Menüpunkte gleichzeitig anzeigen lassen. Als Eintrag im letzten Ordner ist eine Datei (ohne Endung). Wenn diese Datei ausgewählt wird, sollen dem Mega32 Variablen übergeben werden, d.h. es soll dann eine Funktion aufgerufen werden, die mit den übergebenen Werten arbeitet. Die Ordnerstruktur ist immer gleich aufgebaut, d.h. es gibt immer eine gleiche Anzahl der Ordnertiefe. So in der Art möchte ich gerne die Struktur aufbauen: Fotos + Weihnachten ++ Jahr 2010 (Funktionsübergabe) Musik + Volksmugge ++ Flippers (Funktionsübergabe) ++ Amigos (Funktionsübergabe) + Pop ++ Lady Gaga (Funktionsübergabe) Erklärung: Es gibt immer mehrere Obermenüs (Fotos, Musik). Zu den Obermenüs gibt es Untermenüs (Weihnachten, Volksmugge, Pop). Wenn ein Untermenü angeklickt wird, werden die Dateien mit den Funktionsübergaben angezeigt. Wählt man nun eine Datei an, soll eine Funktion aufgerufen werden, welche die Parameter aus der Datei übergeben bekommt. Ist sowas mit einem Mega32 zu realisieren oder ist sogar eine andere Ordnerstruktur vorteilhafter? Über Ratschläge und Hinweise würde ich mich sehr freuen. MfG, Achim
Hallo, Hast du schon eine fertige Schaltung mit SD-Card oder änlichem oder hast du nur das LCD? Wenn du nur das LCD hast schau mal hier vorbei: Beitrag "Universelles Evaluation-Board mit ATMega32" Die Menüführung lässt sich sicher mit einer langen Reihe von casexxxx break; verwirklichen, wobei die jeweiligen Namen auf der SD-Card gespeichert sind.
Achim schrieb: > Hallo, > > ich habe das Forum nach meinem Problem durchsucht, aber irgendwie habe > ich nicht die passenden Antworten gefunden. Ich weiß auch nicht, wonach > ich gezielt suchen soll. :( Hast du dein Problem schon in Teilprobleme zerlegt? Welche davon kannst du alleine bewältigen und bei welchen brauchst du Hilfe? Dein komplettes Problem ist viel zu komplex als dass man hier gezielt irgendwelche Hilfen geben könnten. Also teil erst mal in Subprobleme auf und bearbeite eines nach dem anderen. > Erklärung: Es gibt immer mehrere Obermenüs (Fotos, Musik). Zu den > Obermenüs gibt es Untermenüs (Weihnachten, Volksmugge, Pop). > Wenn ein Untermenü angeklickt wird, werden die Dateien mit den > Funktionsübergaben angezeigt. Wählt man nun eine Datei an, soll eine > Funktion aufgerufen werden, welche die Parameter aus der Datei übergeben > bekommt. > Ist sowas mit einem Mega32 zu realisieren Klar ist das realisierbar. Aber es ist kein Kindergeburtstag mehr. Hier weiß keiner, wie gut du programmieren kannst, von daher ist das schwer einzuschätzen. > oder ist sogar eine andere > Ordnerstruktur vorteilhafter? Die Ordnerstruktur ist piepegal. Die ist variabel und wird von der SD-Karte eingelesen. Dein Programm muss mit jeder beliebigen variablen Ordnerstruktur klarkommen, solange du sie in den Speicher kriegst. D.h. ein wenig Erfahrung im Umgang und im Aufbau mit Datenstrukturen wären schon ganz gut.
Achim schrieb: > So in der Art möchte ich gerne die Struktur aufbauen: > > Fotos > + Weihnachten > ++ Jahr 2010 (Funktionsübergabe) > Musik > + Volksmugge > ++ Flippers (Funktionsübergabe) > ++ Amigos (Funktionsübergabe) > + Pop > ++ Lady Gaga (Funktionsübergabe) Das ist ein Baum. Den musst Du irgendwie speichern. Das Standardverfahren dafür sind Zeiger, über die die Elemente des Baums (Knoten, Blätter) verknüpft werden. Das können simple Adresszeiger sein (Nachteil: eventuell hoher Speicherbedarf) oder verkürzte Adresszeiger (reale Adresse = verkürzte Adresse x konstanter Faktor) oder gar nur ein Index in einem Array. Ein brauchbarer Startpunkt: http://de.wikipedia.org/wiki/Baum_%28Graphentheorie%29
Jannis C. schrieb: > Hast du schon eine fertige Schaltung mit SD-Card oder änlichem oder hast > du nur das LCD? Ich habe noch keinen SD-Card Adapter in meine Schaltung integriert. Ich spiele mit dem Gedanken diesen hier zu erwerben: http://www.shop.display3000.com/elektronikmodule/sd-speicherkartenplatine.html Karl Heinz Buchegger schrieb: > Hast du dein Problem schon in Teilprobleme zerlegt? Ja, habe ich. Es geht mir im ersten Schritt um die Erstellung der Ordnerstruktur und ob es möglich ist diese Struktur mit einem Mega32 o.ä. auszulesen. Wie dann nun die Ordner auf dem LCD angezeigt werden, ist programmiertechnisch zu bewältigen. Darum interessiert es mich vorerst, wie man am einfachsten eine Ordnerstruktur aufbauen kann, damit das Auslesen nicht zu kompliziert wird. Es sollen nur die Menüpunkte mit dem Mega32 ausgelesen werden. Natürlich gibt es noch Taster, die einen Ordner markieren (hoch/runter) und einen Taster für Enter. Karl Heinz Buchegger schrieb: > Hier weiß keiner, wie gut du > programmieren kannst, von daher ist das schwer einzuschätzen. Ich habe in PHP ein Menü-Array mit Ober- und Unterpunkten angelegt. Das funktioniert sehr gut, allerdings möchte ich nun kein Menü-Array für die SD-Karte verwenden, sondern Ordner mit einer ausführbaren Datei (also eine Datei mit den Funktionsübergaben) erstellen. FAT16 würde sich da anbieten, richtig? (Windows-Rechner) Gruß, Achim
Achim schrieb: > Karl Heinz Buchegger schrieb: >> Hast du dein Problem schon in Teilprobleme zerlegt? > Ja, habe ich. > Es geht mir im ersten Schritt um die Erstellung der Ordnerstruktur und > ob es möglich ist diese Struktur mit einem Mega32 o.ä. auszulesen. > Wie dann nun die Ordner auf dem LCD angezeigt werden, ist > programmiertechnisch zu bewältigen. > Darum interessiert es mich vorerst, wie man am einfachsten eine > Ordnerstruktur aufbauen kann, damit das Auslesen nicht zu kompliziert > wird. > Es sollen nur die Menüpunkte mit dem Mega32 ausgelesen werden. > Natürlich gibt es noch Taster, die einen Ordner markieren (hoch/runter) > und einen Taster für Enter. Wie man dir bereits versucht hat nahezulegen. Teilprobleme bilden. Schon das was du hier schreibst ist sehr aufwändig. Also aufteilen: Dateisystem, Einlesen, Indexerstellung, Menüführung, ... Ich glaube nicht, dass du dir dessen bewusst bist, wie weitreichend deine Fragestellung geht. Hast du dich schonmal mit Dateisystemen beschäftigt? http://de.wikipedia.org/wiki/File_Allocation_Table Hast du schonmal ein Menü programmiert? Hast du schonmal Daten aus einer SD Karte gelesen? ... Wenn nein, dann würde ich das schleunigst machen. Achim schrieb: > allerdings möchte ich nun kein Menü-Array für die > SD-Karte verwenden, sondern Ordner mit einer ausführbaren Datei (also > eine Datei mit den Funktionsübergaben) erstellen. Ausführbare Dateien gibt es auf Mikrocontroller nicht. Du kannst in einer Datei Werte ablegen, die dein Mikrocontroller nach einem festen Muster auslesen kann. Wenn man will so will, ist das dann auch eine Datei. Die wirst du allerdings unter Windows mit einem Hex-Editor anlegen müssen. Achim schrieb: > FAT16 würde sich da anbieten, richtig? Gute Idee.
Lehrmann Michael schrieb: > Wie man dir bereits versucht hat nahezulegen. Teilprobleme bilden. Schon > das was du hier schreibst ist sehr aufwändig. Also aufteilen: > Dateisystem, Einlesen, Indexerstellung, Menüführung, ... Das habe ich ja erstmal auf die Erstellung einer geeigneten Ordnerstruktur beschränkt. :) Aber es stimmt, ich bin deswegen noch einen Schritt weiter nach hinten gegangen und begutachtete die Leistungsaufnahme der SD-Karten. Schlussfolgerung: In meinem System kann ich keinesfalls eine SD-Karte einsetzen, da diese zu viel Strom zieht. Ich habe für meine gesamte mobile Schaltung 90mA zur Verfügung. Dann muss ich wohl auf ein externes EEPROM ausweichen, Mist. Lehrmann Michael schrieb: > Ausführbare Dateien gibt es auf Mikrocontroller nicht. Du kannst in > einer Datei Werte ablegen, die dein Mikrocontroller nach einem festen > Muster auslesen kann. Wenn man will so will, ist das dann auch eine > Datei. Genau so meinte ich das auch! Danke, Achim
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.