www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MP3 Player: Navigation durch Ordner und Datein


Autor: RK - NK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe einen Eigenbau MP3 Player mit grafischem Display und externem 
Speicher (1MB).

Möchte über das grafische Display Ordnerstrukturen anzeigen lassen nur 
fehlt mir die Idee wie ich so etwas effizient machen kann.

Derzeit lese ich alle FAT Einträge beim "Abtauchen" in einen Ordner aus 
und speicher Dateigröße, Startcluster und Dateiname im externen SRAM. 
Wenn ich jetzt im ausgelesenen Ordner herumscrolle aktualisiere ich 
ständig die Datein bzw. Ordner am Display. Tauche ich wieder in einen 
anderen Ordner ab, werden die gespeicherten Einträge im SRAM mit den 
neuen überschrieben.
Die Methode ist aber extrem lahm, denn taucht man in einen Ordner mit 
vielen Datein ab, dann dauert das entsprechend lange bis man alle 
Einträge verarbeitet hat. Abgesehen davon geht irgendwann auch der 
Speicher aus.

Wie macht ihr das?
Wie habt ihr das mit der Ausgabe der Ordnerstrukturen gelöst?

Autor: boxi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
speicher nur die infos im ram, die du gerade anzeigen bzw. verarbeiten 
willst...

Autor: RK-NK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber schlussendlich brauch ich ja alle Informationen aller Lieder auf 
der Festplatte, zumindest wieviele Lieder es gibt und welchen 
Startcluster die haben. Wenn ich im Shuffle Modus erst wieder beim 
Rootdirectory anfangen muss und mich bis zu einer gewünschten Datei 
durchwühlen muss, dann dauert so was ja lange oder nicht?
Dasselbe trifft doch auch zu, wenn ich durch die Ordner "browse". Ich 
muss wieder die gesamte FAT Tabelle auslesen bis ich zu der nächsten 
Datei im Browser gelange und von dieser dann Dateilänge, Name... 
auslese.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
RK-NK wrote:
> Aber schlussendlich brauch ich ja alle Informationen aller Lieder auf
> der Festplatte, zumindest wieviele Lieder es gibt und welchen
> Startcluster die haben. Wenn ich im Shuffle Modus erst wieder beim
> Rootdirectory anfangen muss und mich bis zu einer gewünschten Datei
> durchwühlen muss, dann dauert so was ja lange oder nicht?
> Dasselbe trifft doch auch zu, wenn ich durch die Ordner "browse". Ich
> muss wieder die gesamte FAT Tabelle auslesen bis ich zu der nächsten
> Datei im Browser gelange und von dieser dann Dateilänge, Name...
> auslese.

Ja das musst du.
Die Frage ist nur, wie du das mit der Anzeige ineinander
verzahnst.

Das ganze nennt sich 'lazy evaluation':
Wenn eine Information 'teuer' zu beschaffen ist, dann besorge
sie erst dann, wenn du sie wirklich brauchst.

In deinem Fall: Erst dann wenn ein Eintrag in dein Display
hineingescrollt wird, wird er auch tatsächlich vom Directory
ausgelesen. Gewisse Dinge, wie zb. eine notwendige Sortierung
der Einträge können dir da einen Strich durch die Rechnung
machen.

Aber letztendlich kann niemand zaubern: Wenn du alle Einträge
gleichzeitig brauchst, dann musst du auch alle Einträge lesen.
Allerdings: Für den Shuffle Modus musst du ja nicht alle
Einträge im Detail kennen. Du musst nur wissen wieviele es
sind. Deine 'Shuffle Liste' besteht dann nur aus einer
Zahlenliste in der steht, welches Lied (welche Nr) als
nöchstes kommt. Wenn du dann das Lied anspielst, holst du
zuerst den zugehörigen Directory Eintrag und zeigst ihn
an (lazy Evaluation).

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.