|
|
@@ -1,5 +1,5 @@ |
|
|
|
/* |
|
|
|
SD card basic file example |
|
|
|
SD card basic directory list example |
|
|
|
|
|
|
|
This example shows how to create and destroy an SD card file |
|
|
|
The circuit: |
|
|
@@ -18,24 +18,18 @@ |
|
|
|
|
|
|
|
*/ |
|
|
|
#include <SD.h> |
|
|
|
#include <SPI.h> |
|
|
|
|
|
|
|
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 & 4.1 on-board: BUILTIN_SDCARD |
|
|
|
// Wiz820+SD board: pin 4 |
|
|
|
// Teensy 2.0: pin 0 |
|
|
|
// Teensy++ 2.0: pin 20 |
|
|
|
const int chipSelect = 4; |
|
|
|
// Wiz820+SD board: pin 4 |
|
|
|
// Teensy audio board: pin 10 |
|
|
|
// Teensy 3.5 & 3.6 & 4.1 on-board: BUILTIN_SDCARD |
|
|
|
const int chipSelect = 10; |
|
|
|
|
|
|
|
void setup() |
|
|
|
{ |
|
|
|
//UNCOMMENT THESE TWO LINES FOR TEENSY AUDIO BOARD: |
|
|
|
//Uncomment these lines for Teensy 3.x Audio Shield (Rev C) |
|
|
|
//SPI.setMOSI(7); // Audio shield has MOSI on pin 7 |
|
|
|
//SPI.setSCK(14); // Audio shield has SCK on pin 14 |
|
|
|
|
|
|
@@ -45,7 +39,6 @@ void setup() |
|
|
|
; // wait for serial port to connect. |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Serial.print("Initializing SD card..."); |
|
|
|
|
|
|
|
if (!SD.begin(chipSelect)) { |
|
|
@@ -54,7 +47,7 @@ void setup() |
|
|
|
} |
|
|
|
Serial.println("initialization done."); |
|
|
|
|
|
|
|
root = SD.open("/"); |
|
|
|
File root = SD.open("/"); |
|
|
|
|
|
|
|
printDirectory(root, 0); |
|
|
|
|
|
|
@@ -66,30 +59,31 @@ void loop() |
|
|
|
// nothing happens after setup finishes. |
|
|
|
} |
|
|
|
|
|
|
|
void printDirectory(File dir, int numTabs) { |
|
|
|
void printDirectory(File dir, int numSpaces) { |
|
|
|
while(true) { |
|
|
|
|
|
|
|
File entry = dir.openNextFile(); |
|
|
|
File entry = dir.openNextFile(); |
|
|
|
if (! entry) { |
|
|
|
// no more files |
|
|
|
//Serial.println("**nomorefiles**"); |
|
|
|
//Serial.println("** no more files **"); |
|
|
|
break; |
|
|
|
} |
|
|
|
for (uint8_t i=0; i<numTabs; i++) { |
|
|
|
Serial.print('\t'); |
|
|
|
} |
|
|
|
printSpaces(numSpaces); |
|
|
|
Serial.print(entry.name()); |
|
|
|
if (entry.isDirectory()) { |
|
|
|
Serial.println("/"); |
|
|
|
printDirectory(entry, numTabs+1); |
|
|
|
printDirectory(entry, numSpaces+2); |
|
|
|
} else { |
|
|
|
// files have sizes, directories do not |
|
|
|
Serial.print("\t\t"); |
|
|
|
printSpaces(48 - numSpaces - strlen(entry.name())); |
|
|
|
Serial.print(" "); |
|
|
|
Serial.println(entry.size(), DEC); |
|
|
|
} |
|
|
|
entry.close(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void printSpaces(int num) { |
|
|
|
for (int i=0; i < num; i++) { |
|
|
|
Serial.print(" "); |
|
|
|
} |
|
|
|
} |
|
|
|
|