Bei mir läuft der Chip auch gut seit gestern Abend. Tolle Zusammenarbeit hier! Für mich ist der Chip mit den Änderungen so zu 100% nutzbar:
- Checksum müssen raus aus der Library und
- es muss der zusätzliche Case beim FinishEvent eingebaut werden.
Was ich noch beobachtet habe ist, dass die ersten Abfragen von der SD-Karte immer timeouts liefern:
SERIAL MONITOR:
17:37:48.685 → init mp3
17:37:51.652 → start 1
17:37:51.652 → max 25
17:37:51.652 → menu 1
17:37:51.685 → eq normal
17:37:51.719 → files rx timeout error
CODE:
Serial.println(F(„init mp3“));
mp3.begin();
delay(2000);
Serial.print(F(" start „));
Serial.println(preference.mp3StartVolume);
mp3.setVolume(playback.mp3CurrentVolume = preference.mp3StartVolume);
Serial.print(F(“ max „));
Serial.println(preference.mp3MaxVolume);
Serial.print(F(“ menu „));
Serial.println(preference.mp3MenuVolume);
Serial.print(F(“ eq „));
Serial.println(mp3EqualizerName[preference.mp3Equalizer]);
mp3.setEq((DfMp3_Eq)(preference.mp3Equalizer - 1));
Serial.print(F(“ files "));
Serial.println(mp3.getTotalTrackCount(DfMp3_PlaySource_Sd));
pinMode(mp3BusyPin, INPUT);
Wenn ich
mp3.getTotalTrackCount()
direkt ein 2. Mal dahinter aufrufe, kriege ich eine 0 als Antwort.
Erst beim 3. Aufruf hintereinander bekomme ich wiederholt den richtigen Wert.
Ein längeres delay nach dem mp3.begin() hat auch nicht geholfen.
EDIT: Problem gelöst. Es liegt an den mp3.setVolume und mp3.setEq Aufrufen. Der Chip braucht anscheinend etwas Bearbeitungszeit. Mit einem delay(1000) jeweils dahinter, arbeitet alles zuverlässig.