First Commit
This commit is contained in:
80
libraries/SdFat/examples/SoftwareSpi/SoftwareSpi.ino
Normal file
80
libraries/SdFat/examples/SoftwareSpi/SoftwareSpi.ino
Normal file
@@ -0,0 +1,80 @@
|
||||
// An example of the SoftSpiDriver template class.
|
||||
// This example is for an old Adafruit Data Logging Shield on a Mega.
|
||||
// Software SPI is required on Mega since this shield connects to pins 10-13.
|
||||
// This example will also run on an Uno and other boards using software SPI.
|
||||
//
|
||||
#include "SdFat.h"
|
||||
#if SPI_DRIVER_SELECT == 2 // Must be set in SdFat/SdFatConfig.h
|
||||
|
||||
// SD_FAT_TYPE = 0 for SdFat/File as defined in SdFatConfig.h,
|
||||
// 1 for FAT16/FAT32, 2 for exFAT, 3 for FAT16/FAT32 and exFAT.
|
||||
#define SD_FAT_TYPE 3
|
||||
//
|
||||
// Chip select may be constant or RAM variable.
|
||||
const uint8_t SD_CS_PIN = 10;
|
||||
//
|
||||
// Pin numbers in templates must be constants.
|
||||
const uint8_t SOFT_MISO_PIN = 12;
|
||||
const uint8_t SOFT_MOSI_PIN = 11;
|
||||
const uint8_t SOFT_SCK_PIN = 13;
|
||||
|
||||
// SdFat software SPI template
|
||||
SoftSpiDriver<SOFT_MISO_PIN, SOFT_MOSI_PIN, SOFT_SCK_PIN> softSpi;
|
||||
// Speed argument is ignored for software SPI.
|
||||
#if ENABLE_DEDICATED_SPI
|
||||
#define SD_CONFIG SdSpiConfig(SD_CS_PIN, DEDICATED_SPI, SD_SCK_MHZ(0), &softSpi)
|
||||
#else // ENABLE_DEDICATED_SPI
|
||||
#define SD_CONFIG SdSpiConfig(SD_CS_PIN, SHARED_SPI, SD_SCK_MHZ(0), &softSpi)
|
||||
#endif // ENABLE_DEDICATED_SPI
|
||||
|
||||
#if SD_FAT_TYPE == 0
|
||||
SdFat sd;
|
||||
File file;
|
||||
#elif SD_FAT_TYPE == 1
|
||||
SdFat32 sd;
|
||||
File32 file;
|
||||
#elif SD_FAT_TYPE == 2
|
||||
SdExFat sd;
|
||||
ExFile file;
|
||||
#elif SD_FAT_TYPE == 3
|
||||
SdFs sd;
|
||||
FsFile file;
|
||||
#else // SD_FAT_TYPE
|
||||
#error Invalid SD_FAT_TYPE
|
||||
#endif // SD_FAT_TYPE
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
// Wait for USB Serial
|
||||
while (!Serial) {
|
||||
yield();
|
||||
}
|
||||
Serial.println("Type any character to start");
|
||||
while (!Serial.available()) {
|
||||
yield();
|
||||
}
|
||||
|
||||
if (!sd.begin(SD_CONFIG)) {
|
||||
sd.initErrorHalt();
|
||||
}
|
||||
|
||||
if (!file.open("SoftSPI.txt", O_RDWR | O_CREAT)) {
|
||||
sd.errorHalt(F("open failed"));
|
||||
}
|
||||
file.println(F("This line was printed using software SPI."));
|
||||
|
||||
file.rewind();
|
||||
|
||||
while (file.available()) {
|
||||
Serial.write(file.read());
|
||||
}
|
||||
|
||||
file.close();
|
||||
|
||||
Serial.println(F("Done."));
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
void loop() {}
|
||||
#else // SPI_DRIVER_SELECT
|
||||
#error SPI_DRIVER_SELECT must be two in SdFat/SdFatConfig.h
|
||||
#endif // SPI_DRIVER_SELECT
|
||||
Reference in New Issue
Block a user