I am trying to use the SD list code below to list songs recorded as wave files. When run, it does not list any files even though the files "play" with the Audio Shield Card and other code. Is there a problem in using this list code with audio files as opposed to raw data files? When run with one raw data file as the 1st file in the directory, it will list it plus one of the wav files, but none of the other 33 songs. Am I missing something here?
`/*
SD card basic file example
This example shows how to create and destroy an SD card file
The circuit:
SD card attached to SPI bus as follows:
MOSI - pin 11, pin 7 on Teensy with audio board
MISO - pin 12
CLK - pin 13, pin 14 on Teensy with audio board
CS - pin 4, pin 10 on Teensy with audio board
created Nov 2010
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe
This example code is in the public domain.
*/
include
include
File root;
// change this to match your SD shield or module;
// Arduino Ethernet shield: pin 4
// Adafruit SD shields and modules: pin 10
// Sparkfun SD shield: pin 8
// Teensy audio board: pin 10
// Teensy 3.5 & 3.6 on-board: BUILTIN_SDCARD
// Wiz820+SD board: pin 4
// Teensy 2.0: pin 0
// Teensy++ 2.0: pin 20
const int chipSelect = 10;
void setup()
{
//UNCOMMENT THESE TWO LINES FOR TEENSY AUDIO BOARD:
SPI.setMOSI(7); // Audio shield has MOSI on pin 7
SPI.setSCK(14); // Audio shield has SCK on pin 14
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
root = SD.open("/");
printDirectory(root, 0);
Serial.println("done!");
}
void loop()
{
// nothing happens after setup finishes.
}
void printDirectory(File dir, int numTabs) {
while(true) {
File entry = dir.openNextFile();
if (! entry) {
// no more files
//Serial.println("**nomorefiles**");
break;
}
for (uint8_t i=0; i<numTabs; i++) {
Serial.print('\t');
}
Serial.print(entry.name());
if (entry.isDirectory()) {
Serial.println("/");
printDirectory(entry, numTabs+1);
} else {
// files have sizes, directories do not
Serial.print("\t\t");
Serial.println(entry.size(), DEC);
}
entry.close();
I am trying to use the SD list code below to list songs recorded as wave files. When run, it does not list any files even though the files "play" with the Audio Shield Card and other code. Is there a problem in using this list code with audio files as opposed to raw data files? When run with one raw data file as the 1st file in the directory, it will list it plus one of the wav files, but none of the other 33 songs. Am I missing something here?
`/* SD card basic file example
This example shows how to create and destroy an SD card file
The circuit:
SD card attached to SPI bus as follows: MOSI - pin 11, pin 7 on Teensy with audio board MISO - pin 12 CLK - pin 13, pin 14 on Teensy with audio board CS - pin 4, pin 10 on Teensy with audio board
created Nov 2010 by David A. Mellis modified 9 Apr 2012 by Tom Igoe
This example code is in the public domain.
*/
include
include
File root;
// change this to match your SD shield or module; // Arduino Ethernet shield: pin 4 // Adafruit SD shields and modules: pin 10 // Sparkfun SD shield: pin 8 // Teensy audio board: pin 10 // Teensy 3.5 & 3.6 on-board: BUILTIN_SDCARD // Wiz820+SD board: pin 4 // Teensy 2.0: pin 0 // Teensy++ 2.0: pin 20 const int chipSelect = 10;
void setup() { //UNCOMMENT THESE TWO LINES FOR TEENSY AUDIO BOARD: SPI.setMOSI(7); // Audio shield has MOSI on pin 7 SPI.setSCK(14); // Audio shield has SCK on pin 14
// Open serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only }
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done.");
root = SD.open("/");
printDirectory(root, 0);
Serial.println("done!"); }
void loop() { // nothing happens after setup finishes. }
void printDirectory(File dir, int numTabs) { while(true) {
} } `