Ich habe das Problem, dass die readFileCountsInFolder()-Funktion der DFPlayer-Bibliothek nicht die richtige Anzahl der Dateien in einem Verzeichnis anzeigt. Die Gesamtanzahl der Dateien und Verzeichnisse hingegen werden wieder korrekt wiedergegeben.
Serial.print("Auf der SD-Karte befinden sich " + String(myPlayer.readFolderCounts()) + " Verzeichnisse ");
Serial.println("mit insgesamt " + String(myPlayer.readFileCounts())+ " Dateien.");
Serial.println("Dateien im Verzeichniss [1]: " + String(myPlayer.readFileCountsInFolder(1)));
Serial.println("Dateien im Verzeichniss [2]: " + String(myPlayer.readFileCountsInFolder(2)));
Serial.println("Dateien im Verzeichniss [3]: " + String(myPlayer.readFileCountsInFolder(3)));
Serial.println("Dateien im Verzeichniss [4]: " + String(myPlayer.readFileCountsInFolder(4)));
Serial.println("Dateien im Verzeichniss [5]: " + String(myPlayer.readFileCountsInFolder(5)));
Serial.println("Dateien im Verzeichniss [99]: " + String(myPlayer.readFileCountsInFolder(99)));
Der Zugriff in einem Verzeichnis auf eine bestimmte Datei hingegen funktioniert wieder anstandslos:
myPlayer.playFolder(3, 5);
Die Datei 005.mp3 im Verzeichnis 03 wird wiedergegeben.
Auch wenn ich mir die Gesamtausgabe von oben nicht anzeigen lasse und nur eine einzelne Abfrage der Anzahl der Dateien in dem Verzeichnis (z.B.) 3 mache, ist die Ausgabe falsch.
Da Du keine Referenzen benutzt: Nein.
Was auch immer Du da gebaut hast - keine Ahnung was Du da vor hast.
Kannst Du einen Code, der kompiliert und das Problem wenigstens minimalst beschreibt, bringen?
Serial.println("Dateien im Verzeichniss [3]: " + String(myPlayer.readFileCountsInFolder(3)));
gibt 267 wieder, im Verzeichnis 3 befinden sich aber 57 Dateien. Auffallend ist, dass für alle Verzeichnisse die gleiche Anzahl an Dateien zurück gegeben wird!
Mit Referenzierung meinte ich die Zuordnung des physikalischen Verzeichnisses zu der Verzeichnis-Nummer, die in der Funktion readFileCountsInFolder(Verzeichnis-Nummer) angegeben werden muss. Das 1. Verzeichnis nach Erstellungs-Datum ist advert, das erste Verzeichnis nach Name ist 01. Nicht, dass eine bestimmte Reihenfolge eingehalten werden muss. (Also Referenz nicht im Sinne von Pointer...)
Dann hab ich ja Zeit Viel Zeit...
Ich kann mich dran erinnern, das unter bestimmten Konstellationen eine andere lib funktioniert hat... Mal sehen, vielleicht heute Abend. Mal sehen,,,,
Kannst Du was zu Deiner Hardware sagen?
Die Nomenklatur die du angesprochen hast, gilt nur für das mp3 und advert-Verzeichnis. Ist in meinen Verzeichnisbildern auch ersichtlich. Ich möchte aber weitere Verzeichnisse benutzen und da ist eine 2stellige Verzeichnis-Angabe und eine 3stellige Dateinummerierung verpflichtend.
Der Zugriff (Play) innerhalb eines Verzeichnisses funktioniert ja auch korrekt.
Innerhalb der Bibliothek werden nur die korrespondierenden Steuerbefehle an den DFPlayer gesendet. Zum Auslesen der Dateianzahl in einem Ordner, also Ox4E. Daran kann es also nicht liegen.
Ich werde heute Abend noch ein wenig mit der SD-Karte experimentieren. Fals dass nicht zum Erfolg führt, ist wahrscheinlich dein Hinweis, dass es an dem Chipsatz liegt, zutreffend.
und erzeugt mit der Standard Bibliothek (DFRobotDFPlayerMini) die oben gezeigt Ausgabe, bei der in allen Verzeichnissen die gleiche Anzahl an Dateien enthalten sein sollten.
Deswegen habe ich den Neuen DF-Player, der den Chipsatz: YX6200-24SS verwendet, ausprobiert.
Nachdem ich nun den Hinweis von "Rentner" aufgriff und die "DFPlayer Mini Mp3 by Makuna" - Bibliothek implementierte, war die Anzahl der Dateien in den einzelnen Verzeichnissen korrekt.
Lediglich die Gesamtzahl der Verzeichnisse passte nicht. Wahrscheinlich zählt der Neue DF-Player den Root-Eintrag, der sich ab FAT32-formatierten Datenträgern auch im Bereich der Datensektoren befindet, mit. Letztendlich kann der DF-Player nur die File Alocation Table des Datenträgers, auswerten!
Als Gegenprobe habe ich noch einmal die Neue Bibliothek (DFPlayer Mini Mp3 by Makuna) mit dem Alten-DF-Player geladen, aber der Chipsatz liefert die falschen Daten.