SdFat
Defines | Variables
Arduino/libraries/SdFat/SdFatConfig.h File Reference

configuration definitions More...

#include <stdint.h>
Include dependency graph for SdFatConfig.h:
This graph shows which files directly or indirectly include this file:

Defines

#define ALLOW_DEPRECATED_FUNCTIONS   0
#define DESTRUCTOR_CLOSES_FILE   0
#define ENDL_CALLS_FLUSH   0
#define FAT12_SUPPORT   0
#define LEONARDO_SOFT_SPI   0
#define MEGA_SOFT_SPI   0
#define SPI_SD_INIT_RATE   11
#define USE_ARDUINO_SPI_LIBRARY   0
#define USE_MULTI_BLOCK_SD_IO   1
#define USE_MULTIPLE_CARDS   0
#define USE_NATIVE_MK20DX128_SPI   0
#define USE_NATIVE_SAM3X_SPI   0
#define USE_SD_CRC   0
#define USE_SEPARATE_FAT_CACHE   0
#define USE_SERIAL_FOR_STD_OUT   0
#define USE_SOFTWARE_SPI   0

Variables

uint8_t const SOFT_SPI_CS_PIN = 10
uint8_t const SOFT_SPI_MISO_PIN = 12
uint8_t const SOFT_SPI_MOSI_PIN = 11
uint8_t const SOFT_SPI_SCK_PIN = 13

Detailed Description

configuration definitions


Define Documentation

#define ALLOW_DEPRECATED_FUNCTIONS   0

Allow use of deprecated functions if ALLOW_DEPRECATED_FUNCTIONS is nonzero

#define DESTRUCTOR_CLOSES_FILE   0

Set DESTRUCTOR_CLOSES_FILE nonzero to close a file in its destructor.

Causes use of lots of heap in ARM.

#define ENDL_CALLS_FLUSH   0

Call flush for endl if ENDL_CALLS_FLUSH is nonzero

The standard for iostreams is to call flush. This is very costly for SdFat. Each call to flush causes 2048 bytes of I/O to the SD.

SdFat has a single 512 byte buffer for SD I/O so it must write the current data block to the SD, read the directory block from the SD, update the directory entry, write the directory block to the SD and read the data block back into the buffer.

The SD flash memory controller is not designed for this many rewrites so performance may be reduced by more than a factor of 100.

If ENDL_CALLS_FLUSH is zero, you must call flush and/or close to force all data to be written to the SD.

#define FAT12_SUPPORT   0

Allow FAT12 volumes if FAT12_SUPPORT is nonzero. FAT12 has not been well tested.

#define LEONARDO_SOFT_SPI   0

Define LEONARDO_SOFT_SPI nonzero to use software SPI on Leonardo Arduinos. Default pins used are SS 10, MOSI 11, MISO 12, and SCK 13. Edit Software Spi pins to change pin numbers.

LEONARDO_SOFT_SPI allows an unmodified Adafruit GPS Shield to be used on Leonardo Arduinos. Software SPI works well with GPS Shield V1.1 but many SD cards will fail with GPS Shield V1.0.

#define MEGA_SOFT_SPI   0

Define MEGA_SOFT_SPI nonzero to use software SPI on Mega Arduinos. Default pins used are SS 10, MOSI 11, MISO 12, and SCK 13. Edit Software Spi pins to change pin numbers.

MEGA_SOFT_SPI allows an unmodified Adafruit GPS Shield to be used on Mega Arduinos. Software SPI works well with GPS Shield V1.1 but many SD cards will fail with GPS Shield V1.0.

#define SPI_SD_INIT_RATE   11

SPI init rate for SD initialization commands. Must be 10 (F_CPU/64) or greater

#define USE_ARDUINO_SPI_LIBRARY   0

Force use of Arduino Standard SPI library if USE_ARDUINO_SPI_LIBRARY is nonzero.

#define USE_MULTI_BLOCK_SD_IO   1

Don't use mult-block read/write on small AVR boards

#define USE_MULTIPLE_CARDS   0

To use multiple SD cards set USE_MULTIPLE_CARDS nonzero.

Using multiple cards costs 400 - 500 bytes of flash.

Each card requires about 550 bytes of SRAM so use of a Mega is recommended.

#define USE_NATIVE_MK20DX128_SPI   0

Use native SPI on Teensy 3.0 if USE_NATIVE_MK20DX128-SPI is nonzero.

#define USE_NATIVE_SAM3X_SPI   0

Use fast SAM3X SPI library if USE_NATIVE_SAM3X_SPI is nonzero.

#define USE_SD_CRC   0

To enable SD card CRC checking set USE_SD_CRC nonzero.

Set USE_SD_CRC to 1 to use a smaller slower CRC-CCITT function.

Set USE_SD_CRC to 2 to used a larger faster table driven CRC-CCITT function.

#define USE_SEPARATE_FAT_CACHE   0

Set USE_SEPARATE_FAT_CACHE nonzero to use a second 512 byte cache for FAT table entries. Improves performance for large writes that are not a multiple of 512 bytes.

#define USE_SERIAL_FOR_STD_OUT   0

For AVR

Set nonzero to use Serial (the HardwareSerial class) for error messages and output from print functions like ls().

If USE_SERIAL_FOR_STD_OUT is zero, a small non-interrupt driven class is used to output messages to serial port zero. This allows an alternate Serial library like SerialPort to be used with SdFat.

You can redirect stdOut with SdFat::setStdOut(Print* stream) and get the current stream with SdFat::stdOut().

#define USE_SOFTWARE_SPI   0

Set USE_SOFTWARE_SPI nonzero to always use software SPI on AVR.


Variable Documentation

uint8_t const SOFT_SPI_CS_PIN = 10

Default Software SPI chip select pin

uint8_t const SOFT_SPI_MISO_PIN = 12

Software SPI Master In Slave Out pin

uint8_t const SOFT_SPI_MOSI_PIN = 11

Software SPI Master Out Slave In pin

uint8_t const SOFT_SPI_SCK_PIN = 13

Software SPI Clock pin