@@ -85,7 +85,7 @@ developed to test %SdFat and illustrate its use. | |||
\section Install Installation | |||
You must manually install SdFat by copying the SdFat folder from the download | |||
package to the Arduino libraries folder in you sketch folder. | |||
package to the Arduino libraries folder in your sketch folder. | |||
See the Manual installation section of this guide. | |||
@@ -111,12 +111,12 @@ To enable SD card CRC checking set USE_SD_CRC nonzero. | |||
Set FAT12_SUPPORT nonzero to enable use of FAT12 volumes. | |||
FAT12 has not been well tested and requires additional flash. | |||
Set ENABLE_SPI_TRANSACTION nonzero to enable the SPI transaction feature | |||
Set ENABLE_SPI_TRANSACTIONS nonzero to enable the SPI transaction feature | |||
of the standard Arduino SPI library. You must include SPI.h in your | |||
programs when ENABLE_SPI_TRANSACTION is nonzero. | |||
programs when ENABLE_SPI_TRANSACTIONS is nonzero. | |||
Set ENABLE_SPI_YIELD nonzero to enable release of the SPI bus during | |||
SD card busy waits. | |||
SD card busy waits. ENABLE_SPI_TRANSACTIONS must be nonzero. | |||
\section SDPath Paths and Working Directories | |||
@@ -389,4 +389,6 @@ ThreeCards - Demonstrate simultaneous use of SdFat, SdFatLibSpi, SdFatSoftSpi. | |||
Timestamp - Sets file create, modify, and access timestamps. | |||
TwoCards - Example using two SD cards. | |||
VolumeFreeSpace - Demonstrate the freeClusterCount() call. | |||
*/ |
@@ -2,7 +2,7 @@ | |||
// uses RTClib from https://github.com/adafruit/RTClib | |||
#include <SPI.h> | |||
#include <SdFat.h> | |||
#include <SdFatUtil.h> // define FreeRam() | |||
#include <FreeStack.h> | |||
#define SD_CHIP_SELECT SS // SD chip select pin | |||
#define USE_DS1307 0 // set nonzero to use DS1307 RTC | |||
@@ -68,7 +68,7 @@ void setup() { | |||
while (!Serial) {} // wait for Leonardo | |||
// F() stores strings in flash to save RAM | |||
cout << endl << F("FreeRam: ") << FreeRam() << endl; | |||
cout << endl << F("FreeStack: ") << FreeStack() << endl; | |||
#if WAIT_TO_START | |||
cout << F("Type any character to start\n"); |
@@ -6,7 +6,7 @@ | |||
#include <SPI.h> | |||
#include <SdFat.h> | |||
#include <SdFatUtil.h> | |||
#include <FreeStack.h> | |||
#ifdef UDR0 // Must be AVR with serial port zero. | |||
#include <MinimumSerial.h> | |||
@@ -14,7 +14,7 @@ MinimumSerial MiniSerial; | |||
void setup() { | |||
MiniSerial.begin(9600); | |||
MiniSerial.println(FreeRam()); | |||
MiniSerial.println(FreeStack()); | |||
} | |||
void loop() { | |||
int c; |
@@ -22,7 +22,7 @@ | |||
#ifdef __AVR__ | |||
#include <SPI.h> | |||
#include <SdFat.h> | |||
#include <SdFatUtil.h> | |||
#include <FreeStack.h> | |||
#include "AnalogBinLogger.h" | |||
//------------------------------------------------------------------------------ | |||
// Analog pin number list for a sample. Pins may be in any order and pin | |||
@@ -782,8 +782,8 @@ void setup(void) { | |||
// Read the first sample pin to init the ADC. | |||
analogRead(PIN_LIST[0]); | |||
Serial.print(F("FreeRam: ")); | |||
Serial.println(FreeRam()); | |||
Serial.print(F("FreeStack: ")); | |||
Serial.println(FreeStack()); | |||
// initialize file system. | |||
if (!sd.begin(SD_CS_PIN, SPI_FULL_SPEED)) { |
@@ -3,7 +3,7 @@ | |||
// SdFat/examples/LongFileName/testFiles. | |||
#include<SPI.h> | |||
#include <SdFat.h> | |||
#include <SdFatUtil.h> | |||
#include <FreeStack.h> | |||
// SD card chip select pin. | |||
const uint8_t SD_CS_PIN = SS; | |||
@@ -34,8 +34,8 @@ void setup() { | |||
if (!sd.begin(SD_CS_PIN)) { | |||
sd.initErrorHalt(); | |||
} | |||
Serial.print(F("Free RAM: ")); | |||
Serial.println(FreeRam()); | |||
Serial.print(F("FreeStack: ")); | |||
Serial.println(FreeStack()); | |||
Serial.println(); | |||
// List files in root directory. |
@@ -15,7 +15,7 @@ | |||
*/ | |||
#include <SPI.h> | |||
#include <SdFat.h> | |||
#include <SdFatUtil.h> | |||
#include <FreeStack.h> | |||
//------------------------------------------------------------------------------ | |||
// User data functions. Modify these functions for your data items. | |||
#include "UserDataType.h" // Edit this include file to change data_t. | |||
@@ -506,8 +506,8 @@ void setup(void) { | |||
Serial.begin(9600); | |||
while (!Serial) {} | |||
Serial.print(F("FreeRam: ")); | |||
Serial.println(FreeRam()); | |||
Serial.print(F("FreeStack: ")); | |||
Serial.println(FreeStack()); | |||
Serial.print(F("Records/block: ")); | |||
Serial.println(DATA_DIM); | |||
if (sizeof(block_t) != 512) { |
@@ -24,7 +24,9 @@ void setup() { | |||
sd.initErrorHalt(); | |||
} | |||
// open next file in root. The volume working directory, vwd, is root | |||
// Open next file in root. The volume working directory, vwd, is root. | |||
// Warning, openNext starts at the current position of sd.vwd() so a | |||
// rewind may be neccessary in your application. | |||
while (file.openNext(sd.vwd(), O_READ)) { | |||
file.printFileSize(&Serial); | |||
Serial.write(' '); |
@@ -3,7 +3,7 @@ | |||
*/ | |||
#include <SPI.h> | |||
#include <SdFat.h> | |||
#include <SdFatUtil.h> | |||
#include <FreeStack.h> | |||
// SD chip select pin | |||
const uint8_t chipSelect = SS; | |||
@@ -43,7 +43,7 @@ void loop() { | |||
} | |||
delay(400); // catch Due reset problem | |||
cout << F("Free RAM: ") << FreeRam() << endl; | |||
cout << F("FreeStack: ") << FreeStack() << endl; | |||
// initialize the SD card at SPI_FULL_SPEED for best performance. | |||
// try SPI_HALF_SPEED if bus errors occur. |
@@ -16,7 +16,7 @@ | |||
*/ | |||
#include <SPI.h> | |||
#include <SdFat.h> | |||
#include <SdFatUtil.h> | |||
#include <FreeStack.h> | |||
// SD chip select pin | |||
const uint8_t chipSelect = SS; | |||
@@ -61,7 +61,7 @@ void loop(void) { | |||
while (Serial.read() <= 0) {} | |||
delay(400); // catch Due reset problem | |||
cout << F("Free RAM: ") << FreeRam() << endl; | |||
cout << F("FreeStack: ") << FreeStack() << endl; | |||
// initialize the SD card at SPI_FULL_SPEED for best performance. | |||
// try SPI_HALF_SPEED if bus errors occur. |
@@ -16,7 +16,7 @@ | |||
#include <SPI.h> | |||
#include <SdFat.h> | |||
#if DEBUG_PRINT | |||
#include <SdFatUtil.h> | |||
#include <FreeStack.h> | |||
#endif // DEBUG_PRINT | |||
// | |||
// Change the value of chipSelect if your hardware does | |||
@@ -79,7 +79,7 @@ void sdError_F(const __FlashStringHelper* str) { | |||
//------------------------------------------------------------------------------ | |||
#if DEBUG_PRINT | |||
void debugPrint() { | |||
cout << F("FreeRam: ") << FreeRam() << endl; | |||
cout << F("FreeStack: ") << FreeStack() << endl; | |||
cout << F("partStart: ") << relSector << endl; | |||
cout << F("partSize: ") << partSize << endl; | |||
cout << F("reserved: ") << reservedSectors << endl; | |||
@@ -497,8 +497,8 @@ void setup() { | |||
} | |||
cardCapacityMB = (cardSizeBlocks + 2047)/2048; | |||
cout << F("Card Size: ") << cardCapacityMB; | |||
cout << F(" MB, (MB = 1,048,576 bytes)") << endl; | |||
cout << F("Card Size: ") << setprecision(0) << 1.048576*cardCapacityMB; | |||
cout << F(" MB, (MB = 1,000,000 bytes)") << endl; | |||
if (c == 'E' || c == 'F') { | |||
eraseCard(); |
@@ -37,6 +37,12 @@ void setup() { | |||
} | |||
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.")); |
@@ -48,7 +48,7 @@ void setup() { | |||
for (uint8_t fileType = 0; fileType < 2; fileType++) { | |||
if (!fileType) { | |||
if (!printFile.open("print.txt", O_CREAT | O_RDWR | O_TRUNC)) { | |||
Serial.println("open fail"); | |||
Serial.println(F("open fail")); | |||
return; | |||
} | |||
printTime = millis(); | |||
@@ -95,7 +95,7 @@ void setup() { | |||
} else { | |||
if (!stdioFile.fopen("stream.txt", "w+")) { | |||
Serial.println("fopen fail"); | |||
Serial.println(F("fopen fail")); | |||
return; | |||
} | |||
stdioTime = millis(); | |||
@@ -186,22 +186,22 @@ void setup() { | |||
} | |||
} | |||
Serial.print("fileSize: "); | |||
Serial.print(F("fileSize: ")); | |||
if (printSize != stdioSize) { | |||
Serial.print(printSize); | |||
Serial.print(" != "); | |||
Serial.print(F(" != ")); | |||
} | |||
Serial.println(stdioSize); | |||
Serial.print("print millis: "); | |||
Serial.print(F("print millis: ")); | |||
Serial.println(printTime); | |||
Serial.print("stdio millis: "); | |||
Serial.print(F("stdio millis: ")); | |||
Serial.println(stdioTime); | |||
Serial.print("ratio: "); | |||
Serial.print(F("ratio: ")); | |||
Serial.println((float)printTime/(float)stdioTime); | |||
Serial.println(); | |||
printFile.close(); | |||
stdioFile.fclose(); | |||
} | |||
Serial.println("Done"); | |||
Serial.println(F("Done")); | |||
} | |||
void loop() {} |
@@ -3,7 +3,7 @@ | |||
*/ | |||
#include <SPI.h> | |||
#include <SdFat.h> | |||
#include <SdFatUtil.h> | |||
#include <FreeStack.h> | |||
#if SD_SPI_CONFIGURATION >= 3 // Must be set in SdFat/SdFatConfig.h | |||
// SD1 is a microSD on hardware SPI pins 50-52 | |||
@@ -46,9 +46,9 @@ void list() { | |||
void setup() { | |||
Serial.begin(9600); | |||
while (!Serial) {} // wait for Leonardo | |||
Serial.print(F("FreeRam: ")); | |||
Serial.print(F("FreeStack: ")); | |||
Serial.println(FreeRam()); | |||
Serial.println(FreeStack()); | |||
// fill buffer with known data | |||
for (int i = 0; i < sizeof(buf); i++) { |
@@ -3,7 +3,7 @@ | |||
*/ | |||
#include <SPI.h> | |||
#include <SdFat.h> | |||
#include <SdFatUtil.h> | |||
#include <FreeStack.h> | |||
SdFat sd1; | |||
const uint8_t SD1_CS = 10; // chip select for sd1 | |||
@@ -25,9 +25,9 @@ const uint16_t NWRITE = FILE_SIZE/BUF_DIM; | |||
void setup() { | |||
Serial.begin(9600); | |||
while (!Serial) {} // wait for Leonardo | |||
Serial.print(F("FreeRam: ")); | |||
Serial.print(F("FreeStack: ")); | |||
Serial.println(FreeRam()); | |||
Serial.println(FreeStack()); | |||
// fill buffer with known data | |||
for (int i = 0; i < sizeof(buf); i++) { |
@@ -0,0 +1,78 @@ | |||
/* | |||
* This program demonstrates the freeClusterCount() call. | |||
*/ | |||
#include <SPI.h> | |||
#include <SdFat.h> | |||
/* | |||
* SD chip select pin. Common values are: | |||
* | |||
* Arduino Ethernet shield, pin 4. | |||
* SparkFun SD shield, pin 8. | |||
* Adafruit Datalogging shield, pin 10. | |||
* Default SD chip select is the SPI SS pin. | |||
*/ | |||
const uint8_t chipSelect = SS; | |||
#define TEST_FILE "CLUSTER.TST" | |||
// file system | |||
SdFat sd; | |||
// test file | |||
SdFile file; | |||
// Serial output stream | |||
ArduinoOutStream cout(Serial); | |||
//------------------------------------------------------------------------------ | |||
void printFreeSpace() { | |||
cout << F("freeClusterCount() call time: "); | |||
uint32_t m = micros(); | |||
uint32_t volFree = sd.vol()->freeClusterCount(); | |||
cout << micros() - m << F(" micros\n"); | |||
cout << F("freeClusters: ") << volFree << setprecision(3) << endl; | |||
float fs = 0.000512*volFree*sd.vol()->blocksPerCluster(); | |||
cout << F("freeSpace: ") << fs << F(" MB (MB = 1,000,000 bytes)\n\n"); | |||
} | |||
//------------------------------------------------------------------------------ | |||
void setup() { | |||
Serial.begin(9600); | |||
while (!Serial) {} // wait for Leonardo | |||
if (!MAINTAIN_FREE_CLUSTER_COUNT) { | |||
cout << F("Please edit SdFatConfig.h and set\n"); | |||
cout << F("MAINTAIN_FREE_CLUSTER_COUNT nonzero for\n"); | |||
cout << F("maximum freeClusterCount() performance.\n\n"); | |||
} | |||
// pstr stores strings in flash to save RAM | |||
cout << F("Type any character to start\n"); | |||
while (Serial.read() <= 0) {} | |||
delay(400); // catch Due reset problem | |||
// initialize the SD card at SPI_HALF_SPEED to avoid bus errors with | |||
// breadboards. use SPI_FULL_SPEED for better performance. | |||
if (!sd.begin(chipSelect, SPI_HALF_SPEED)) { | |||
sd.initErrorHalt(); | |||
} | |||
// Insure no TEST_FILE. | |||
sd.remove(TEST_FILE); | |||
cout << F("\nFirst call to freeClusterCount scans the FAT.\n\n"); | |||
printFreeSpace(); | |||
cout << F("Create and write to ") << TEST_FILE << endl; | |||
if (!file.open(TEST_FILE, O_WRITE | O_CREAT)) { | |||
sd.errorHalt(F("Create failed")); | |||
} | |||
file.print(F("Cause a cluster to be allocated")); | |||
file.close(); | |||
cout << F("\nSecond freeClusterCount call is faster if\n"); | |||
cout << F("MAINTAIN_FREE_CLUSTER_COUNT is nonzero.\n\n"); | |||
printFreeSpace(); | |||
cout << F("Remove ") << TEST_FILE << endl << endl; | |||
sd.remove(TEST_FILE); | |||
printFreeSpace(); | |||
} | |||
//------------------------------------------------------------------------------ | |||
void loop() {} |
@@ -3,7 +3,7 @@ | |||
*/ | |||
#include <SPI.h> | |||
#include <SdFat.h> | |||
#include <SdFatUtil.h> | |||
#include <FreeStack.h> | |||
// SD chip select pin | |||
const uint8_t chipSelect = SS; | |||
@@ -85,7 +85,7 @@ void loop() { | |||
while (Serial.read() <= 0) {} | |||
delay(400); // catch Due reset problem | |||
cout << F("Free RAM: ") << FreeRam() << endl; | |||
cout << F("FreeStack: ") << FreeStack() << endl; | |||
// initialize the SD card at SPI_FULL_SPEED for best performance. | |||
// try SPI_HALF_SPEED if bus errors occur. |
@@ -0,0 +1,9 @@ | |||
name=SdFat | |||
version=2015.4.26 | |||
author= | |||
maintainer= | |||
sentence=FAT16/FAT32 file system for SD cards. | |||
paragraph= | |||
category=Uncategorized | |||
url= | |||
architectures=* |
@@ -103,6 +103,7 @@ bool FatVolume::allocateCluster(uint32_t current, uint32_t* next) { | |||
// Remember place for search start. | |||
m_allocSearchStart = find; | |||
} | |||
updateFreeClusterCount(-1); | |||
*next = find; | |||
return true; | |||
@@ -171,6 +172,9 @@ bool FatVolume::allocContiguous(uint32_t count, uint32_t* firstCluster) { | |||
} | |||
endCluster--; | |||
} | |||
// Maintain count of free clusters. | |||
updateFreeClusterCount(-count); | |||
// return first cluster number to caller | |||
*firstCluster = bgnCluster; | |||
return true; | |||
@@ -337,6 +341,9 @@ bool FatVolume::freeChain(uint32_t cluster) { | |||
DBG_FAIL_MACRO; | |||
goto fail; | |||
} | |||
// Add one to count of free clusters. | |||
updateFreeClusterCount(1); | |||
if (cluster < m_allocSearchStart) { | |||
m_allocSearchStart = cluster; | |||
} | |||
@@ -350,6 +357,11 @@ fail: | |||
} | |||
//------------------------------------------------------------------------------ | |||
int32_t FatVolume::freeClusterCount() { | |||
#if MAINTAIN_FREE_CLUSTER_COUNT | |||
if (m_freeClusterCount >= 0) { | |||
return m_freeClusterCount; | |||
} | |||
#endif // MAINTAIN_FREE_CLUSTER_COUNT | |||
uint32_t free = 0; | |||
uint32_t lba; | |||
uint32_t todo = m_lastCluster + 1; | |||
@@ -399,6 +411,7 @@ int32_t FatVolume::freeClusterCount() { | |||
DBG_FAIL_MACRO; | |||
goto fail; | |||
} | |||
setFreeClusterCount(free); | |||
return free; | |||
fail: | |||
@@ -488,6 +501,9 @@ bool FatVolume::init(uint8_t part) { | |||
clusterCount >>= m_clusterSizeShift; | |||
m_lastCluster = clusterCount + 1; | |||
// Indicate unknown number of free clusters. | |||
setFreeClusterCount(-1); | |||
// FAT type is determined by cluster count | |||
if (clusterCount < 4085) { | |||
m_fatType = 12; |
@@ -272,6 +272,21 @@ class FatVolume { | |||
uint32_t m_lastCluster; // Last cluster number in FAT. | |||
uint32_t m_rootDirStart; // Start block for FAT16, cluster for FAT32. | |||
//------------------------------------------------------------------------------ | |||
#if MAINTAIN_FREE_CLUSTER_COUNT | |||
int32_t m_freeClusterCount; // Count of free clusters in volume. | |||
void setFreeClusterCount(int32_t value) { | |||
m_freeClusterCount = value; | |||
} | |||
void updateFreeClusterCount(int32_t change) { | |||
if (m_freeClusterCount >= 0) { | |||
m_freeClusterCount += change; | |||
} | |||
} | |||
#else // MAINTAIN_FREE_CLUSTER_COUNT | |||
void setFreeClusterCount(int32_t value) {} | |||
void updateFreeClusterCount(int32_t change) {} | |||
#endif // MAINTAIN_FREE_CLUSTER_COUNT | |||
// block caches | |||
FatCache m_cache; | |||
#if USE_SEPARATE_FAT_CACHE |
@@ -0,0 +1,45 @@ | |||
/* Arduino SdFat Library | |||
* Copyright (C) 2015 by William Greiman | |||
* | |||
* This file is part of the Arduino SdFat Library | |||
* | |||
* This Library is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation, either version 3 of the License, or | |||
* (at your option) any later version. | |||
* | |||
* This Library is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU General Public License for more details. | |||
* You should have received a copy of the GNU General Public License | |||
* along with the Arduino SdFat Library. If not, see | |||
* <http://www.gnu.org/licenses/>. | |||
*/ | |||
#ifndef FreeStack_h | |||
#define FreeStack_h | |||
/** | |||
* \file | |||
* \brief FreeStack() function. | |||
*/ | |||
#ifdef __arm__ | |||
extern "C" char* sbrk(int incr); | |||
static int FreeStack() { | |||
char top; | |||
return &top - reinterpret_cast<char*>(sbrk(0)); | |||
} | |||
#else // __arm__ | |||
/** boundary between stack and heap. */ | |||
extern char *__brkval; | |||
/** End of bss section.*/ | |||
extern char __bss_end; | |||
/** Amount of free stack space. | |||
* \return The number of free bytes. | |||
*/ | |||
static int FreeStack() { | |||
char top; | |||
return __brkval ? &top - __brkval : &top - &__bss_end; | |||
} | |||
#endif // __arm | |||
#endif // FreeStack_h |
@@ -23,11 +23,11 @@ | |||
* \file | |||
* \brief SdFat class | |||
*/ | |||
#include "SdSpiCard.h" | |||
#include "utility/FatLib.h" | |||
#include "SdSpiCard/SdSpiCard.h" | |||
#include "FatLib/FatLib.h" | |||
//------------------------------------------------------------------------------ | |||
/** SdFat version YYYYMMDD */ | |||
#define SD_FAT_VERSION 20150201 | |||
#define SD_FAT_VERSION 20150718 | |||
//============================================================================== | |||
/** | |||
* \class SdBaseFile |
@@ -59,11 +59,27 @@ | |||
*/ | |||
#define ARDUINO_FILE_USES_STREAM 1 | |||
//------------------------------------------------------------------------------ | |||
/** | |||
* Determine the default SPI configuration. | |||
*/ | |||
#if defined(__AVR__)\ | |||
|| defined(__SAM3X8E__) || defined(__SAM3X8H__)\ | |||
|| (defined(__arm__) && defined(CORE_TEENSY))\ | |||
|| defined(__STM32F1__)\ | |||
|| defined(DOXYGEN) | |||
// Use custom fast implementation. | |||
#define SD_HAS_CUSTOM_SPI 1 | |||
#else // SD_HAS_CUSTOM_SPI | |||
// Use standard SPI library. | |||
#define SD_HAS_CUSTOM_SPI 0 | |||
#endif // SD_HAS_CUSTOM_SPI | |||
//------------------------------------------------------------------------------ | |||
/** | |||
* The symbol SD_SPI_CONFIGURATION defines SPI access to the SD card. | |||
* | |||
* IF SD_SPI_CONFIGUTATION is define to be zero, only the SdFat class | |||
* is define and SdFat uses a fast custom SPI implementation. | |||
* is define and SdFat uses a fast custom SPI implementation if avaiable. | |||
* If SD_HAS_CUSTOM_SPI is zero, the standard SPI library is used. | |||
* | |||
* If SD_SPI_CONFIGURATION is define to be one, only the SdFat class is | |||
* define and SdFat uses the standard Arduino SPI.h library. | |||
@@ -93,6 +109,13 @@ uint8_t const SOFT_SPI_MISO_PIN = 12; | |||
/** Software SPI Clock pin */ | |||
uint8_t const SOFT_SPI_SCK_PIN = 13; | |||
//------------------------------------------------------------------------------ | |||
/** | |||
* Set MAINTAIN_FREE_CLUSTER_COUNT nonzero to keep the count of free clusters | |||
* updated. This will increase the speed of the freeClusterCount() call | |||
* after the first call. Extra flash will be required. | |||
*/ | |||
#define MAINTAIN_FREE_CLUSTER_COUNT 0 | |||
//------------------------------------------------------------------------------ | |||
/** | |||
* To enable SD card CRC checking set USE_SD_CRC nonzero. | |||
* | |||
@@ -103,18 +126,18 @@ uint8_t const SOFT_SPI_SCK_PIN = 13; | |||
#define USE_SD_CRC 0 | |||
//------------------------------------------------------------------------------ | |||
/** | |||
* Set ENABLE_SPI_TRANSACTION nonzero to enable the SPI transaction feature | |||
* Set ENABLE_SPI_TRANSACTIONS nonzero to enable the SPI transaction feature | |||
* of the standard Arduino SPI library. You must include SPI.h in your | |||
* programs when ENABLE_SPI_TRANSACTION is nonzero. | |||
* programs when ENABLE_SPI_TRANSACTIONS is nonzero. | |||
*/ | |||
#define ENABLE_SPI_TRANSACTION 0 | |||
#define ENABLE_SPI_TRANSACTIONS 0 | |||
//------------------------------------------------------------------------------ | |||
/** | |||
* Set ENABLE_SPI_YIELD nonzero to enable release of the SPI bus during | |||
* SD card busy waits. | |||
* | |||
* This will allow interrupt routines to access the SPI bus if | |||
* ENABLE_SPI_TRANSACTION is nonzero. | |||
* ENABLE_SPI_TRANSACTIONS is nonzero. | |||
* | |||
* Setting ENABLE_SPI_YIELD will introduce some extra overhead and will | |||
* slightly slow transfer rates. A few older SD cards may fail when |
@@ -1,5 +1,5 @@ | |||
/* Arduino SdFat Library | |||
* Copyright (C) 2012 by William Greiman | |||
* Copyright (C) 2015 by William Greiman | |||
* | |||
* This file is part of the Arduino SdFat Library | |||
* |
@@ -52,7 +52,7 @@ void fastDigitalWrite(uint8_t pin, bool value) { | |||
*portClearRegister(pin) = 1; | |||
} | |||
} | |||
#else // CORE_TEENSY | |||
#elif defined(__SAM3X8E__) || defined(__SAM3X8H__) // CORE_TEENSY | |||
//------------------------------------------------------------------------------ | |||
/** read pin value | |||
* @param[in] pin Arduino pin number | |||
@@ -75,6 +75,25 @@ void fastDigitalWrite(uint8_t pin, bool value) { | |||
g_APinDescription[pin].pPort->PIO_CODR = g_APinDescription[pin].ulPin; | |||
} | |||
} | |||
#else // CORE_TEENSY | |||
//------------------------------------------------------------------------------ | |||
/** read pin value | |||
* @param[in] pin Arduino pin number | |||
* @return value read | |||
*/ | |||
static inline __attribute__((always_inline)) | |||
bool fastDigitalRead(uint8_t pin) { | |||
return digitalRead(pin); | |||
} | |||
//------------------------------------------------------------------------------ | |||
/** Set pin value | |||
* @param[in] pin Arduino pin number | |||
* @param[in] level value to write | |||
*/ | |||
static inline __attribute__((always_inline)) | |||
void fastDigitalWrite(uint8_t pin, bool value) { | |||
digitalWrite(pin, value); | |||
} | |||
#endif // CORE_TEENSY | |||
//------------------------------------------------------------------------------ | |||
inline void fastDigitalToggle(uint8_t pin) { | |||
@@ -213,41 +232,47 @@ static const pin_map_t pinMap[] = { | |||
#ifdef PORT_D0 | |||
// Newer version of 1284P | |||
static const pin_map_t pinMap[] = { | |||
{PORT_TO_MODE(PORT_D0), PORT_TO_INPUT(PORT_D0), PORT_TO_OUTPUT(PORT_D0), BIT_D0}, | |||
{PORT_TO_MODE(PORT_D1), PORT_TO_INPUT(PORT_D1), PORT_TO_OUTPUT(PORT_D1), BIT_D1}, | |||
{PORT_TO_MODE(PORT_D2), PORT_TO_INPUT(PORT_D2), PORT_TO_OUTPUT(PORT_D2), BIT_D2}, | |||
{PORT_TO_MODE(PORT_D3), PORT_TO_INPUT(PORT_D3), PORT_TO_OUTPUT(PORT_D3), BIT_D3}, | |||
{PORT_TO_MODE(PORT_D4), PORT_TO_INPUT(PORT_D4), PORT_TO_OUTPUT(PORT_D4), BIT_D4}, | |||
{PORT_TO_MODE(PORT_D5), PORT_TO_INPUT(PORT_D5), PORT_TO_OUTPUT(PORT_D5), BIT_D5}, | |||
{PORT_TO_MODE(PORT_D6), PORT_TO_INPUT(PORT_D6), PORT_TO_OUTPUT(PORT_D6), BIT_D6}, | |||
{PORT_TO_MODE(PORT_D7), PORT_TO_INPUT(PORT_D7), PORT_TO_OUTPUT(PORT_D7), BIT_D7}, | |||
{PORT_TO_MODE(PORT_D8), PORT_TO_INPUT(PORT_D8), PORT_TO_OUTPUT(PORT_D8), BIT_D8}, | |||
{PORT_TO_MODE(PORT_D9), PORT_TO_INPUT(PORT_D9), PORT_TO_OUTPUT(PORT_D9), BIT_D9}, | |||
{PORT_TO_MODE(PORT_D10), PORT_TO_INPUT(PORT_D10), PORT_TO_OUTPUT(PORT_D10), BIT_D10}, | |||
{PORT_TO_MODE(PORT_D11), PORT_TO_INPUT(PORT_D11), PORT_TO_OUTPUT(PORT_D11), BIT_D11}, | |||
{PORT_TO_MODE(PORT_D12), PORT_TO_INPUT(PORT_D12), PORT_TO_OUTPUT(PORT_D12), BIT_D12}, | |||
{PORT_TO_MODE(PORT_D13), PORT_TO_INPUT(PORT_D13), PORT_TO_OUTPUT(PORT_D13), BIT_D13}, | |||
{PORT_TO_MODE(PORT_D14), PORT_TO_INPUT(PORT_D14), PORT_TO_OUTPUT(PORT_D14), BIT_D14}, | |||
{PORT_TO_MODE(PORT_D15), PORT_TO_INPUT(PORT_D15), PORT_TO_OUTPUT(PORT_D15), BIT_D15}, | |||
{PORT_TO_MODE(PORT_D16), PORT_TO_INPUT(PORT_D16), PORT_TO_OUTPUT(PORT_D16), BIT_D16}, | |||
{PORT_TO_MODE(PORT_D17), PORT_TO_INPUT(PORT_D17), PORT_TO_OUTPUT(PORT_D17), BIT_D17}, | |||
{PORT_TO_MODE(PORT_D18), PORT_TO_INPUT(PORT_D18), PORT_TO_OUTPUT(PORT_D18), BIT_D18}, | |||
{PORT_TO_MODE(PORT_D19), PORT_TO_INPUT(PORT_D19), PORT_TO_OUTPUT(PORT_D19), BIT_D19}, | |||
{PORT_TO_MODE(PORT_D20), PORT_TO_INPUT(PORT_D20), PORT_TO_OUTPUT(PORT_D20), BIT_D20}, | |||
{PORT_TO_MODE(PORT_D21), PORT_TO_INPUT(PORT_D21), PORT_TO_OUTPUT(PORT_D21), BIT_D21}, | |||
{PORT_TO_MODE(PORT_D22), PORT_TO_INPUT(PORT_D22), PORT_TO_OUTPUT(PORT_D22), BIT_D22}, | |||
{PORT_TO_MODE(PORT_D23), PORT_TO_INPUT(PORT_D23), PORT_TO_OUTPUT(PORT_D23), BIT_D23}, | |||
{PORT_TO_MODE(PORT_D24), PORT_TO_INPUT(PORT_D24), PORT_TO_OUTPUT(PORT_D24), BIT_D24}, | |||
{PORT_TO_MODE(PORT_D25), PORT_TO_INPUT(PORT_D25), PORT_TO_OUTPUT(PORT_D25), BIT_D25}, | |||
{PORT_TO_MODE(PORT_D26), PORT_TO_INPUT(PORT_D26), PORT_TO_OUTPUT(PORT_D26), BIT_D26}, | |||
{PORT_TO_MODE(PORT_D27), PORT_TO_INPUT(PORT_D27), PORT_TO_OUTPUT(PORT_D27), BIT_D27}, | |||
{PORT_TO_MODE(PORT_D28), PORT_TO_INPUT(PORT_D28), PORT_TO_OUTPUT(PORT_D28), BIT_D28}, | |||
{PORT_TO_MODE(PORT_D29), PORT_TO_INPUT(PORT_D29), PORT_TO_OUTPUT(PORT_D29), BIT_D29}, | |||
{PORT_TO_MODE(PORT_D30), PORT_TO_INPUT(PORT_D30), PORT_TO_OUTPUT(PORT_D30), BIT_D30}, | |||
{PORT_TO_MODE(PORT_D31), PORT_TO_INPUT(PORT_D31), PORT_TO_OUTPUT(PORT_D31), BIT_D31} | |||
}; | |||
#elif analogInputToDigitalPin(0)==24 | |||
#define DPM(x) {PORT_TO_MODE(PORT_D##x), PORT_TO_INPUT(PORT_D##x), \ | |||
PORT_TO_OUTPUT(PORT_D##x), BIT_D##x} | |||
static const pin_map_t pinMap[] = { | |||
DPM(0), | |||
DPM(1), | |||
DPM(2), | |||
DPM(3), | |||
DPM(4), | |||
DPM(5), | |||
DPM(6), | |||
DPM(7), | |||
DPM(8), | |||
DPM(9), | |||
DPM(10), | |||
DPM(11), | |||
DPM(12), | |||
DPM(13), | |||
DPM(14), | |||
DPM(15), | |||
DPM(16), | |||
DPM(17), | |||
DPM(18), | |||
DPM(19), | |||
DPM(20), | |||
DPM(21), | |||
DPM(22), | |||
DPM(23), | |||
DPM(24), | |||
DPM(25), | |||
DPM(26), | |||
DPM(27), | |||
DPM(28), | |||
DPM(29), | |||
DPM(30), | |||
DPM(31) | |||
}; | |||
#undef DPM | |||
#elif analogInputToDigitalPin(0) == 24 | |||
// Mighty Layout | |||
static const pin_map_t pinMap[] = { | |||
{&DDRB, &PINB, &PORTB, 0}, // B0 0 | |||
@@ -283,7 +308,7 @@ static const pin_map_t pinMap[] = { | |||
{&DDRA, &PINA, &PORTA, 6}, // A6 30 | |||
{&DDRA, &PINA, &PORTA, 7} // A7 31 | |||
}; | |||
#elif analogInputToDigitalPin(0)==21 | |||
#elif analogInputToDigitalPin(0) == 21 | |||
// Bobuino Layout | |||
static const pin_map_t pinMap[] = { | |||
{&DDRD, &PIND, &PORTD, 0}, // D0 0 | |||
@@ -319,7 +344,7 @@ static const pin_map_t pinMap[] = { | |||
{&DDRD, &PIND, &PORTD, 4}, // D4 30 | |||
{&DDRD, &PIND, &PORTD, 7} // D7 31 | |||
}; | |||
#elif analogInputToDigitalPin(0)==31 | |||
#elif analogInputToDigitalPin(0) == 31 | |||
// Standard Layout | |||
static const pin_map_t pinMap[] = { | |||
{&DDRB, &PINB, &PORTB, 0}, // B0 0 |
@@ -24,6 +24,7 @@ | |||
#ifndef SdSpi_h | |||
#define SdSpi_h | |||
#include <Arduino.h> | |||
#include <SPI.h> | |||
#include "SdFatConfig.h" | |||
//------------------------------------------------------------------------------ | |||
@@ -39,7 +40,11 @@ class SdSpiBase { | |||
* | |||
* \param[in] divisor SCK clock divider relative to the system clock. | |||
*/ | |||
virtual void init(uint8_t divisor); | |||
virtual void beginTransaction(uint8_t divisor); | |||
/** | |||
* End SPI transaction. | |||
*/ | |||
virtual void endTransaction(); | |||
/** Receive a byte. | |||
* | |||
* \return The byte. | |||
@@ -64,8 +69,6 @@ class SdSpiBase { | |||
* \param[in] n Number of bytes to send. | |||
*/ | |||
virtual void send(const uint8_t* buf, size_t n) = 0; | |||
/** \return true if hardware SPI else false */ | |||
virtual bool useSpiTransactions() = 0; | |||
}; | |||
//------------------------------------------------------------------------------ | |||
/** | |||
@@ -84,7 +87,11 @@ class SdSpi { | |||
* | |||
* \param[in] divisor SCK clock divider relative to the system clock. | |||
*/ | |||
void init(uint8_t divisor); | |||
void beginTransaction(uint8_t divisor); | |||
/** | |||
* End SPI transaction | |||
*/ | |||
void endTransaction(); | |||
/** Receive a byte. | |||
* | |||
* \return The byte. | |||
@@ -110,9 +117,6 @@ class SdSpi { | |||
*/ | |||
void send(const uint8_t* buf, size_t n); | |||
/** \return true - uses SPI transactions */ | |||
bool useSpiTransactions() { | |||
return true; | |||
} | |||
}; | |||
//------------------------------------------------------------------------------ | |||
/** | |||
@@ -120,8 +124,6 @@ class SdSpi { | |||
* \brief Arduino SPI library class for access to SD and SDHC flash | |||
* memory cards. | |||
*/ | |||
#if SD_SPI_CONFIGURATION >= 3 || SD_SPI_CONFIGURATION == 1 || defined(DOXYGEN) | |||
#include <SPI.h> | |||
#if SD_SPI_CONFIGURATION >= 3 | |||
class SdSpiLib : public SdSpiBase { | |||
#else // SD_SPI_CONFIGURATION >= 3 | |||
@@ -138,9 +140,14 @@ class SdSpiLib { | |||
* | |||
* \param[in] divisor SCK clock divider relative to the system clock. | |||
*/ | |||
void init(uint8_t divisor) { | |||
SPI.setBitOrder(MSBFIRST); | |||
SPI.setDataMode(SPI_MODE0); | |||
void beginTransaction(uint8_t divisor) { | |||
#if ENABLE_SPI_TRANSACTIONS | |||
SPI.beginTransaction(SPISettings()); | |||
#else // #if ENABLE_SPI_TRANSACTIONS | |||
SPI.setBitOrder(MSBFIRST); | |||
SPI.setDataMode(SPI_MODE0); | |||
#endif // #if ENABLE_SPI_TRANSACTIONS | |||
#ifndef SPI_CLOCK_DIV128 | |||
SPI.setClockDivider(divisor); | |||
#else // SPI_CLOCK_DIV128 | |||
@@ -162,6 +169,14 @@ class SdSpiLib { | |||
} | |||
SPI.setClockDivider(v); | |||
#endif // SPI_CLOCK_DIV128 | |||
} | |||
/** | |||
* End SPI transaction. | |||
*/ | |||
void endTransaction() { | |||
#if ENABLE_SPI_TRANSACTIONS | |||
SPI.endTransaction(); | |||
#endif // ENABLE_SPI_TRANSACTIONS | |||
} | |||
/** Receive a byte. | |||
* | |||
@@ -200,15 +215,10 @@ class SdSpiLib { | |||
SPI.transfer(buf[i]); | |||
} | |||
} | |||
/** \return true - uses SPI transactions */ | |||
bool useSpiTransactions() { | |||
return true; | |||
} | |||
}; | |||
#endif // SD_SPI_CONFIGURATION >= 3 || SD_SPI_CONFIGURATION == 1 | |||
//------------------------------------------------------------------------------ | |||
#if SD_SPI_CONFIGURATION > 1 || defined(DOXYGEN) | |||
#include "utility/SoftSPI.h" | |||
#include "SoftSPI.h" | |||
/** | |||
* \class SdSpiSoft | |||
* \brief Software SPI class for access to SD and SDHC flash memory cards. | |||
@@ -226,7 +236,11 @@ class SdSpiSoft : public SdSpiBase { | |||
* Initialize hardware SPI - dummy for soft SPI | |||
* \param[in] divisor SCK divisor - ignored. | |||
*/ | |||
void init(uint8_t divisor) {} | |||
void beginTransaction(uint8_t divisor) {} | |||
/** | |||
* End SPI transaction - dummy for soft SPI | |||
*/ | |||
void endTransaction() {} | |||
/** Receive a byte. | |||
* | |||
* \return The byte. | |||
@@ -264,29 +278,23 @@ class SdSpiSoft : public SdSpiBase { | |||
send(buf[i]); | |||
} | |||
} | |||
/** \return false - no SPI transactions */ | |||
bool useSpiTransactions() { | |||
return false; | |||
} | |||
private: | |||
SoftSPI<MisoPin, MosiPin, SckPin, 0> m_spi; | |||
}; | |||
#endif // SD_SPI_CONFIGURATION > 1 || defined(DOXYGEN) | |||
//------------------------------------------------------------------------------ | |||
#if SD_SPI_CONFIGURATION == 0 || SD_SPI_CONFIGURATION >= 3 | |||
/** Default is custom fast SPI. */ | |||
typedef SdSpi SpiDefault_t; | |||
#elif SD_SPI_CONFIGURATION == 1 | |||
/** Default is Arduino library SPI. */ | |||
typedef SdSpiLib SpiDefault_t; | |||
#elif SD_SPI_CONFIGURATION == 2 | |||
#if SD_SPI_CONFIGURATION == 2 | |||
/** Default is software SPI. */ | |||
typedef SdSpiSoft<SOFT_SPI_MISO_PIN, SOFT_SPI_MOSI_PIN, SOFT_SPI_SCK_PIN> | |||
SpiDefault_t; | |||
#else // SD_SPI_CONFIGURATION == 0 || SD_SPI_CONFIGURATION >= 3 | |||
#error bad SD_SPI_CONFIGURATION | |||
#endif // SD_SPI_CONFIGURATION == 0 || SD_SPI_CONFIGURATION >= 3 | |||
#elif SD_SPI_CONFIGURATION == 1 || !SD_HAS_CUSTOM_SPI | |||
/** Default is Arduino library SPI. */ | |||
typedef SdSpiLib SpiDefault_t; | |||
#else // SpiDefault_t | |||
/** Default is custom fast SPI. */ | |||
typedef SdSpi SpiDefault_t; | |||
#endif // SpiDefault_t | |||
//------------------------------------------------------------------------------ | |||
// Use of in-line for AVR to save flash. | |||
#ifdef __AVR__ | |||
@@ -310,7 +318,10 @@ inline void SdSpi::begin() { | |||
#endif // __AVR_ATmega328P__ | |||
} | |||
//------------------------------------------------------------------------------ | |||
inline void SdSpi::init(uint8_t divisor) { | |||
inline void SdSpi::beginTransaction(uint8_t divisor) { | |||
#if ENABLE_SPI_TRANSACTIONS | |||
SPI.beginTransaction(SPISettings()); | |||
#endif // ENABLE_SPI_TRANSACTIONS | |||
uint8_t b = 2; | |||
uint8_t r = 0; | |||
@@ -320,6 +331,12 @@ inline void SdSpi::init(uint8_t divisor) { | |||
SPSR = r & 1 ? 0 : 1 << SPI2X; | |||
} | |||
//------------------------------------------------------------------------------ | |||
inline void SdSpi::endTransaction() { | |||
#if ENABLE_SPI_TRANSACTIONS | |||
SPI.endTransaction(); | |||
#endif // ENABLE_SPI_TRANSACTIONS | |||
} | |||
//------------------------------------------------------------------------------ | |||
inline uint8_t SdSpi::receive() { | |||
SPDR = 0XFF; | |||
while (!(SPSR & (1 << SPIF))) {} |
@@ -19,9 +19,6 @@ | |||
*/ | |||
#include "SdSpiCard.h" | |||
#include "SdSpi.h" | |||
#if ENABLE_SPI_TRANSACTION | |||
#include <SPI.h> | |||
#endif // ENABLE_SPI_TRANSACTION | |||
// debug trace macro | |||
#define SD_TRACE(m, b) | |||
// #define SD_TRACE(m, b) Serial.print(m);Serial.println(b); | |||
@@ -130,13 +127,13 @@ bool SdSpiCard::begin(m_spi_t* spi, uint8_t chipSelectPin, uint8_t sckDivisor) { | |||
// set SCK rate for initialization commands | |||
m_sckDivisor = SPI_SCK_INIT_DIVISOR; | |||
spiInit(m_sckDivisor); | |||
spiBeginTransaction(m_sckDivisor); | |||
// must supply min of 74 clock cycles with CS high. | |||
for (uint8_t i = 0; i < 10; i++) { | |||
spiSend(0XFF); | |||
} | |||
spiEndTransaction(); | |||
// command to go idle in SPI mode | |||
while (cardCommand(CMD0, 0) != R1_IDLE_STATE) { | |||
if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) { | |||
@@ -269,30 +266,21 @@ uint32_t SdSpiCard::cardSize() { | |||
} | |||
//------------------------------------------------------------------------------ | |||
void SdSpiCard::spiYield() { | |||
#if ENABLE_SPI_TRANSACTION && ENABLE_SPI_YIELD && defined(SPI_HAS_TRANSACTION) | |||
#if ENABLE_SPI_TRANSACTIONS && ENABLE_SPI_YIELD | |||
chipSelectHigh(); | |||
chipSelectLow(); | |||
#endif // ENABLE_SPI_TRANSACTION && ENABLE_SPI_YIELD && SPI_HAS_TRANSACTION | |||
#endif // ENABLE_SPI_TRANSACTIONS && ENABLE_SPI_YIELD | |||
} | |||
//------------------------------------------------------------------------------ | |||
void SdSpiCard::chipSelectHigh() { | |||
digitalWrite(m_chipSelectPin, HIGH); | |||
// insure MISO goes high impedance | |||
spiSend(0XFF); | |||
#if ENABLE_SPI_TRANSACTION && defined(SPI_HAS_TRANSACTION) | |||
if (useSpiTransactions()) { | |||
SPI.endTransaction(); | |||
} | |||
#endif // ENABLE_SPI_TRANSACTION && defined(SPI_HAS_TRANSACTION) | |||
spiEndTransaction(); | |||
} | |||
//------------------------------------------------------------------------------ | |||
void SdSpiCard::chipSelectLow() { | |||
#if ENABLE_SPI_TRANSACTION && defined(SPI_HAS_TRANSACTION) | |||
if (useSpiTransactions()) { | |||
SPI.beginTransaction(SPISettings()); | |||
} | |||
#endif // ENABLE_SPI_TRANSACTION && defined(SPI_HAS_TRANSACTION) | |||
spiInit(m_sckDivisor); | |||
spiBeginTransaction(m_sckDivisor); | |||
digitalWrite(m_chipSelectPin, LOW); | |||
} | |||
//------------------------------------------------------------------------------ |
@@ -24,9 +24,9 @@ | |||
* \brief SdSpiCard class for V2 SD/SDHC cards | |||
*/ | |||
#include <Arduino.h> | |||
#include <SdFatConfig.h> | |||
#include <SdInfo.h> | |||
#include <SdSpi.h> | |||
#include "SdFatConfig.h" | |||
#include "SdInfo.h" | |||
#include "SdSpi.h" | |||
//============================================================================== | |||
/** | |||
* \class SdSpiCard | |||
@@ -250,8 +250,11 @@ class SdSpiCard { | |||
void spiBegin() { | |||
m_spi->begin(); | |||
} | |||
void spiInit(uint8_t spiDivisor) { | |||
m_spi->init(spiDivisor); | |||
void spiBeginTransaction(uint8_t spiDivisor) { | |||
m_spi->beginTransaction(spiDivisor); | |||
} | |||
void spiEndTransaction() { | |||
m_spi->endTransaction(); | |||
} | |||
uint8_t spiReceive() { | |||
return m_spi->receive(); | |||
@@ -265,9 +268,6 @@ class SdSpiCard { | |||
void spiSend(const uint8_t* buf, size_t n) { | |||
m_spi->send(buf, n); | |||
} | |||
bool useSpiTransactions() { | |||
return m_spi->useSpiTransactions(); | |||
} | |||
m_spi_t* m_spi; | |||
uint8_t m_chipSelectPin; | |||
uint8_t m_errorCode; |
@@ -132,7 +132,10 @@ static void spiDmaTX(const uint8_t* src, uint16_t count) { | |||
} | |||
//------------------------------------------------------------------------------ | |||
// initialize SPI controller | |||
void SdSpi::init(uint8_t sckDivisor) { | |||
void SdSpi::beginTransaction(uint8_t sckDivisor) { | |||
#if ENABLE_SPI_TRANSACTIONS | |||
SPI.beginTransaction(SPISettings()); | |||
#endif // ENABLE_SPI_TRANSACTIONS | |||
uint8_t scbr = sckDivisor; | |||
Spi* pSpi = SPI0; | |||
// disable SPI | |||
@@ -147,6 +150,12 @@ void SdSpi::init(uint8_t sckDivisor) { | |||
pSpi->SPI_CR |= SPI_CR_SPIEN; | |||
} | |||
//------------------------------------------------------------------------------ | |||
void SdSpi::endTransaction() { | |||
#if ENABLE_SPI_TRANSACTIONS | |||
SPI.endTransaction(); | |||
#endif // ENABLE_SPI_TRANSACTIONS | |||
} | |||
//------------------------------------------------------------------------------ | |||
static inline uint8_t spiTransfer(uint8_t b) { | |||
Spi* pSpi = SPI0; | |||
@@ -0,0 +1,180 @@ | |||
/* Arduino SdSpi Library | |||
* Copyright (C) 2013 by William Greiman | |||
* | |||
* STM32F1 code for Maple and Maple Mini support, 2015 by Victor Perez | |||
* | |||
* This file is part of the Arduino SdSpi Library | |||
* | |||
* This Library is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation, either version 3 of the License, or | |||
* (at your option) any later version. | |||
* | |||
* This Library is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU General Public License | |||
* along with the Arduino SdSpi Library. If not, see | |||
* <http://www.gnu.org/licenses/>. | |||
*/ | |||
#if defined(__STM32F1__) | |||
#include "SdSpi.h" | |||
#include <libmaple/dma.h> | |||
/** Use STM32 DMAC if nonzero */ | |||
#define USE_STM32F1_DMAC 1 | |||
/** Time in ms for DMA receive timeout */ | |||
#define STM32F1_DMA_TIMEOUT 100 | |||
/** DMAC receive channel */ | |||
#define SPI1_DMAC_RX_CH DMA_CH2 | |||
/** DMAC transmit channel */ | |||
#define SPI1_DMAC_TX_CH DMA_CH3 | |||
volatile bool SPI_DMA_TX_Active = false; | |||
volatile bool SPI_DMA_RX_Active = false; | |||
/** ISR for DMA TX event. */ | |||
inline void SPI_DMA_TX_Event() { | |||
SPI_DMA_TX_Active = false; | |||
dma_disable(DMA1, SPI_DMAC_TX_CH); | |||
} | |||
/** ISR for DMA RX event. */ | |||
inline void SPI_DMA_RX_Event() { | |||
SPI_DMA_RX_Active = false; | |||
dma_disable(DMA1, SPI1_DMAC_RX_CH); | |||
} | |||
//------------------------------------------------------------------------------ | |||
/** Disable DMA Channel. */ | |||
static void dmac_channel_disable(dma_channel ul_num) { | |||
dma_disable(DMA1, ul_num); | |||
} | |||
/** Enable DMA Channel. */ | |||
static void dmac_channel_enable(dma_channel ul_num) { | |||
dma_enable(DMA1, ul_num); | |||
} | |||
//------------------------------------------------------------------------------ | |||
void SdSpi::begin() { | |||
SPI.begin(); | |||
} | |||
//------------------------------------------------------------------------------ | |||
// start RX DMA | |||
static void spiDmaRX(uint8_t* dst, uint16_t count) { | |||
// spi_rx_dma_enable(SPI1); | |||
if (count < 1) return; | |||
dma_setup_transfer(DMA1, SPI1_DMAC_RX_CH, &SPI1->regs->DR, DMA_SIZE_8BITS, | |||
dst, DMA_SIZE_8BITS, (DMA_MINC_MODE | DMA_TRNS_CMPLT)); | |||
dma_set_num_transfers(DMA1, SPI1_DMAC_RX_CH, count); // 2 bytes per pixel | |||
SPI_DMA_RX_Active = true; | |||
dma_enable(DMA1, SPI1_DMAC_RX_CH); | |||
} | |||
//------------------------------------------------------------------------------ | |||
// start TX DMA | |||
static void spiDmaTX(const uint8_t* src, uint16_t count) { | |||
if (count < 1) return; | |||
static uint8_t ff = 0XFF; | |||
if (!src) { | |||
src = &ff; | |||
dma_setup_transfer(DMA1, SPI1_DMAC_TX_CH, &SPI1->regs->DR, DMA_SIZE_8BITS, | |||
const_cast<uint8_t*>(src), DMA_SIZE_8BITS, | |||
(DMA_FROM_MEM | DMA_TRNS_CMPLT)); | |||
} else { | |||
dma_setup_transfer(DMA1, SPI1_DMAC_TX_CH, &SPI1->regs->DR, DMA_SIZE_8BITS, | |||
const_cast<uint8_t*>(src), DMA_SIZE_8BITS, | |||
(DMA_MINC_MODE | DMA_FROM_MEM | DMA_TRNS_CMPLT)); | |||
} | |||
dma_set_num_transfers(DMA1, SPI1_DMAC_TX_CH, count); // 2 bytes per pixel | |||
SPI_DMA_TX_Active = true; | |||
dma_enable(DMA1, SPI1_DMAC_TX_CH); | |||
} | |||
//------------------------------------------------------------------------------ | |||
// initialize SPI controller STM32F1 | |||
void SdSpi::beginTransaction(uint8_t sckDivisor) { | |||
#if ENABLE_SPI_TRANSACTIONS | |||
SPI.beginTransaction(SPISettings()); | |||
#endif // ENABLE_SPI_TRANSACTIONS | |||
if (sckDivisor < SPI_CLOCK_DIV2 || sckDivisor > SPI_CLOCK_DIV256) { | |||
sckDivisor = SPI_CLOCK_DIV2; // may not be needed, testing. | |||
} | |||
SPI.setClockDivider(sckDivisor); | |||
SPI.setBitOrder(MSBFIRST); | |||
SPI.setDataMode(SPI_MODE0); | |||
#if USE_STM32F1_DMAC | |||
dma_init(DMA1); | |||
dma_attach_interrupt(DMA1, SPI1_DMAC_TX_CH, SPI_DMA_TX_Event); | |||
dma_attach_interrupt(DMA1, SPI1_DMAC_RX_CH, SPI_DMA_RX_Event); | |||
spi_tx_dma_enable(SPI1); | |||
spi_rx_dma_enable(SPI1); | |||
#endif // USE_STM32F1_DMAC | |||
} | |||
//------------------------------------------------------------------------------ | |||
void SdSpi::endTransaction() { | |||
#if ENABLE_SPI_TRANSACTIONS | |||
SPI.endTransaction(); | |||
#endif // ENABLE_SPI_TRANSACTIONS | |||
} | |||
//------------------------------------------------------------------------------ | |||
// STM32 | |||
static inline uint8_t spiTransfer(uint8_t b) { | |||
return SPI.transfer(b); | |||
} | |||
//------------------------------------------------------------------------------ | |||
// should be valid for STM32 | |||
/** SPI receive a byte */ | |||
uint8_t SdSpi::receive() { | |||
return spiTransfer(0xFF); | |||
} | |||
//------------------------------------------------------------------------------ | |||
/** SPI receive multiple bytes */ | |||
// check and finish. | |||
uint8_t SdSpi::receive(uint8_t* buf, size_t n) { | |||
int rtn = 0; | |||
#if USE_STM32F1_DMAC | |||
spiDmaRX(buf, n); | |||
spiDmaTX(0, n); | |||
uint32_t m = millis(); | |||
while (SPI_DMA_RX_Active) { | |||
if ((millis() - m) > STM32F1_DMA_TIMEOUT) { | |||
dmac_channel_disable(SPI_DMAC_RX_CH); | |||
dmac_channel_disable(SPI_DMAC_TX_CH); | |||
rtn = 2; | |||
break; | |||
} | |||
} | |||
#else // USE_STM32F1_DMAC | |||
for (size_t i = 0; i < n; i++) { | |||
buf[i] = SPI.transfer(0xFF); | |||
} | |||
#endif // USE_STM32F1_DMAC | |||
return rtn; | |||
} | |||
//------------------------------------------------------------------------------ | |||
/** SPI send a byte */ | |||
void SdSpi::send(uint8_t b) { | |||
spiTransfer(b); | |||
} | |||
//------------------------------------------------------------------------------ | |||
void SdSpi::send(const uint8_t* buf , size_t n) { | |||
#if USE_STM32F1_DMAC | |||
spiDmaTX(buf, n); | |||
while (SPI_DMA_TX_Active) {} | |||
#else // #if USE_STM32F1_DMAC | |||
SPI.write(buf, n); | |||
#endif // #if USE_STM32F1_DMAC | |||
// leave RX register empty | |||
// while (spi_is_rx_nonempty(SPI1)) | |||
uint8_t b = spi_rx_reg(SPI1); | |||
} | |||
#endif // USE_NATIVE_STM32F1_SPI |
@@ -48,9 +48,11 @@ void SdSpi::begin() { | |||
* Initialize hardware SPI | |||
* | |||
*/ | |||
void SdSpi::init(uint8_t sckDivisor) { | |||
void SdSpi::beginTransaction(uint8_t sckDivisor) { | |||
uint32_t ctar, ctar0, ctar1; | |||
#if ENABLE_SPI_TRANSACTIONS | |||
SPI.beginTransaction(SPISettings()); | |||
#endif // #if ENABLE_SPI_TRANSACTIONS | |||
if (sckDivisor <= 2) { | |||
// 1/2 speed | |||
ctar = SPI_CTAR_DBR | SPI_CTAR_BR(0) | SPI_CTAR_CSSCK(0); | |||
@@ -224,7 +226,6 @@ void SdSpi::send(const uint8_t* buf , size_t n) { | |||
#else // KINETISK | |||
//============================================================================== | |||
// Use standard SPI library if not KINETISK | |||
#include "SPI.h" | |||
/** | |||
* Initialize SPI pins. | |||
*/ | |||
@@ -235,9 +236,13 @@ void SdSpi::begin() { | |||
* | |||
* \param[in] divisor SCK clock divider relative to the system clock. | |||
*/ | |||
void SdSpi::init(uint8_t divisor) { | |||
void SdSpi::beginTransaction(uint8_t divisor) { | |||
#if ENABLE_SPI_TRANSACTIONS | |||
SPI.beginTransaction(SPISettings()); | |||
#else // #if ENABLE_SPI_TRANSACTIONS | |||
SPI.setBitOrder(MSBFIRST); | |||
SPI.setDataMode(SPI_MODE0); | |||
#endif // #if ENABLE_SPI_TRANSACTIONS | |||
#ifndef SPI_CLOCK_DIV128 | |||
SPI.setClockDivider(divisor); | |||
#else // SPI_CLOCK_DIV128 | |||
@@ -298,4 +303,10 @@ void SdSpi::send(const uint8_t* buf , size_t n) { | |||
} | |||
} | |||
#endif // KINETISK | |||
//------------------------------------------------------------------------------ | |||
void SdSpi::endTransaction() { | |||
#if ENABLE_SPI_TRANSACTIONS | |||
SPI.endTransaction(); | |||
#endif // ENABLE_SPI_TRANSACTIONS | |||
} | |||
#endif // defined(__arm__) && defined(CORE_TEENSY) |
@@ -1,3 +1,19 @@ | |||
19 Jul 2015 | |||
Converted to 1.5x library format. | |||
Use standard SPI library is no custom SPI library is available for a board. | |||
Option to maintain freeClusterCount. | |||
16 Mar 2015 | |||
Minimal support for Teensy-LC. | |||
23 Feb 2015 | |||
New 1284P software SPI macros. | |||
01 Feb 2015 | |||
Code cleanup and re-factor. |
@@ -4,7 +4,7 @@ | |||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | |||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | |||
<meta name="generator" content="Doxygen 1.8.8"/> | |||
<title>SdFat: Arduino/libraries/SdFat/utility/ArduinoFiles.h File Reference</title> | |||
<title>SdFat: Arduino/libraries/SdFat/src/FatLib/ArduinoFiles.h File Reference</title> | |||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | |||
<script type="text/javascript" src="jquery.js"></script> | |||
<script type="text/javascript" src="dynsections.js"></script> | |||
@@ -80,7 +80,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<div id="nav-path" class="navpath"> | |||
<ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_97b7730287bc3bcd349854d6663367e4.html">utility</a></li> </ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_c18d6c86f7b0afecac5c3a8a9885031e.html">src</a></li><li class="navelem"><a class="el" href="dir_7e472674a7b7d2590a789f197241f95f.html">FatLib</a></li> </ul> | |||
</div> | |||
</div><!-- top --> | |||
<div class="header"> | |||
@@ -100,16 +100,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
</div><div class="textblock"><div class="dynheader"> | |||
Include dependency graph for ArduinoFiles.h:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_arduino_files_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2utility_2_arduino_files_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2utility_2_arduino_files_8h" id="_arduino_2libraries_2_sd_fat_2utility_2_arduino_files_8h"> | |||
<div class="center"><img src="_arduino_files_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_arduino_files_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_arduino_files_8h" id="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_arduino_files_8h"> | |||
<area shape="rect" id="node3" href="_fat_lib_config_8h.html" title="configuration definitions " alt="" coords="323,245,428,272"/> <area shape="rect" id="node10" href="_fat_file_8h.html" title="FatFile class. " alt="" coords="211,96,284,123"/> <area shape="rect" id="node7" href="_sd_fat_config_8h.html" title="configuration definitions " alt="" coords="366,320,481,347"/> <area shape="rect" id="node19" href="_fat_structs_8h.html" title="FAT file structures. " alt="" coords="102,245,196,272"/> <area shape="rect" id="node21" href="_fat_volume_8h.html" title="FatVolume class. " alt="" coords="200,171,296,197"/> </map> | |||
</div> | |||
</div><div class="textblock"><div class="dynheader"> | |||
This graph shows which files directly or indirectly include this file:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_arduino_files_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2utility_2_arduino_files_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2utility_2_arduino_files_8hdep" id="_arduino_2libraries_2_sd_fat_2utility_2_arduino_files_8hdep"> | |||
<area shape="rect" id="node3" href="_fat_file_system_8h.html" title="FatFileSystem class. " alt="" coords="5,97,163,138"/> </map> | |||
<div class="center"><img src="_arduino_files_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_arduino_files_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_arduino_files_8hdep" id="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_arduino_files_8hdep"> | |||
<area shape="rect" id="node3" href="_fat_file_system_8h.html" title="FatFileSystem class. " alt="" coords="5,97,189,138"/> </map> | |||
</div> | |||
</div><table class="memberdecls"> | |||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> | |||
@@ -160,7 +160,7 @@ Macros</h2></td></tr> | |||
</div><!-- contents --> | |||
<!-- start footer part --> | |||
<hr class="footer"/><address class="footer"><small> | |||
Generated on Sun Feb 1 2015 10:21:39 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
Generated on Sun Jul 19 2015 10:15:53 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
<img class="footer" src="doxygen.png" alt="doxygen"/> | |||
</a> 1.8.8 | |||
</small></address> |
@@ -4,7 +4,7 @@ | |||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | |||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | |||
<meta name="generator" content="Doxygen 1.8.8"/> | |||
<title>SdFat: Arduino/libraries/SdFat/utility/ArduinoStream.h File Reference</title> | |||
<title>SdFat: Arduino/libraries/SdFat/src/FatLib/ArduinoStream.h File Reference</title> | |||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | |||
<script type="text/javascript" src="jquery.js"></script> | |||
<script type="text/javascript" src="dynsections.js"></script> | |||
@@ -80,7 +80,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<div id="nav-path" class="navpath"> | |||
<ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_97b7730287bc3bcd349854d6663367e4.html">utility</a></li> </ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_c18d6c86f7b0afecac5c3a8a9885031e.html">src</a></li><li class="navelem"><a class="el" href="dir_7e472674a7b7d2590a789f197241f95f.html">FatLib</a></li> </ul> | |||
</div> | |||
</div><!-- top --> | |||
<div class="header"> | |||
@@ -99,8 +99,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
</div><div class="textblock"><div class="dynheader"> | |||
Include dependency graph for ArduinoStream.h:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_arduino_stream_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2utility_2_arduino_stream_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2utility_2_arduino_stream_8h" id="_arduino_2libraries_2_sd_fat_2utility_2_arduino_stream_8h"> | |||
<div class="center"><img src="_arduino_stream_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_arduino_stream_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_arduino_stream_8h" id="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_arduino_stream_8h"> | |||
<area shape="rect" id="node3" href="_fat_lib_config_8h.html" title="configuration definitions " alt="" coords="5,544,109,571"/> <area shape="rect" id="node12" href="bufstream_8h.html" title="ibufstream and obufstream classes " alt="" coords="347,96,437,123"/> <area shape="rect" id="node7" href="_sd_fat_config_8h.html" title="configuration definitions " alt="" coords="47,619,163,645"/> <area shape="rect" id="node16" href="iostream_8h.html" title="iostream class " alt="" coords="317,171,400,197"/> <area shape="rect" id="node18" href="istream_8h.html" title="istream class " alt="" coords="219,245,295,272"/> <area shape="rect" id="node38" href="ostream_8h.html" title="ostream class " alt="" coords="320,245,400,272"/> <area shape="rect" id="node20" href="ios_8h.html" title="ios_base and ios classes " alt="" coords="244,320,295,347"/> <area shape="rect" id="node22" href="_fat_file_8h.html" title="FatFile class. " alt="" coords="233,395,305,421"/> <area shape="rect" id="node30" href="_fat_structs_8h.html" title="FAT file structures. " alt="" coords="263,544,357,571"/> <area shape="rect" id="node32" href="_fat_volume_8h.html" title="FatVolume class. " alt="" coords="233,469,329,496"/> </map> | |||
</div> | |||
</div><table class="memberdecls"> | |||
@@ -118,7 +118,7 @@ Classes</h2></td></tr> | |||
</div></div><!-- contents --> | |||
<!-- start footer part --> | |||
<hr class="footer"/><address class="footer"><small> | |||
Generated on Sun Feb 1 2015 10:21:39 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
Generated on Sun Jul 19 2015 10:15:53 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
<img class="footer" src="doxygen.png" alt="doxygen"/> | |||
</a> 1.8.8 | |||
</small></address> |
@@ -4,7 +4,7 @@ | |||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | |||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | |||
<meta name="generator" content="Doxygen 1.8.8"/> | |||
<title>SdFat: Arduino/libraries/SdFat/utility/DigitalPin.h File Reference</title> | |||
<title>SdFat: Arduino/libraries/SdFat/src/SdSpiCard/DigitalPin.h File Reference</title> | |||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | |||
<script type="text/javascript" src="jquery.js"></script> | |||
<script type="text/javascript" src="dynsections.js"></script> | |||
@@ -80,7 +80,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<div id="nav-path" class="navpath"> | |||
<ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_97b7730287bc3bcd349854d6663367e4.html">utility</a></li> </ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_c18d6c86f7b0afecac5c3a8a9885031e.html">src</a></li><li class="navelem"><a class="el" href="dir_c1572573431a6c581ab684c4a3cd60b9.html">SdSpiCard</a></li> </ul> | |||
</div> | |||
</div><!-- top --> | |||
<div class="header"> | |||
@@ -101,16 +101,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
</div><div class="textblock"><div class="dynheader"> | |||
Include dependency graph for DigitalPin.h:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_digital_pin_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2utility_2_digital_pin_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2utility_2_digital_pin_8h" id="_arduino_2libraries_2_sd_fat_2utility_2_digital_pin_8h"> | |||
<div class="center"><img src="_digital_pin_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_digital_pin_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_digital_pin_8h" id="_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_digital_pin_8h"> | |||
</map> | |||
</div> | |||
</div><div class="textblock"><div class="dynheader"> | |||
This graph shows which files directly or indirectly include this file:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_digital_pin_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2utility_2_digital_pin_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2utility_2_digital_pin_8hdep" id="_arduino_2libraries_2_sd_fat_2utility_2_digital_pin_8hdep"> | |||
<area shape="rect" id="node3" href="_soft_s_p_i_8h.html" title="Software SPI. " alt="" coords="5,97,160,138"/> <area shape="rect" id="node5" href="_sd_spi_8h.html" title="SdSpi class for V2 SD/SDHC cards. " alt="" coords="5,187,160,229"/> <area shape="rect" id="node7" href="_sd_spi_card_8h.html" title="SdSpiCard class for V2 SD/SDHC cards. " alt="" coords="5,278,160,319"/> <area shape="rect" id="node9" href="_sd_fat_8h.html" title="SdFat class. " alt="" coords="5,369,160,410"/> <area shape="rect" id="node11" href="_sd_fat_util_8h.html" title="Useful utility functions. " alt="" coords="5,459,160,501"/> </map> | |||
<div class="center"><img src="_digital_pin_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_digital_pin_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_digital_pin_8hdep" id="_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_digital_pin_8hdep"> | |||
<area shape="rect" id="node3" href="_soft_s_p_i_8h.html" title="Software SPI. " alt="" coords="14,97,183,138"/> <area shape="rect" id="node5" href="_sd_spi_8h.html" title="SdSpi class for V2 SD/SDHC cards. " alt="" coords="19,187,179,229"/> <area shape="rect" id="node7" href="_sd_spi_card_8h.html" title="SdSpiCard class for V2 SD/SDHC cards. " alt="" coords="5,278,192,319"/> <area shape="rect" id="node9" href="_sd_fat_8h.html" title="SdFat class. " alt="" coords="21,369,176,410"/> <area shape="rect" id="node11" href="_sd_fat_util_8h.html" title="Useful utility functions. " alt="" coords="21,459,176,501"/> </map> | |||
</div> | |||
</div><table class="memberdecls"> | |||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> | |||
@@ -151,7 +151,7 @@ Variables</h2></td></tr> | |||
</div></div><!-- contents --> | |||
<!-- start footer part --> | |||
<hr class="footer"/><address class="footer"><small> | |||
Generated on Sun Feb 1 2015 10:21:39 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
Generated on Sun Jul 19 2015 10:15:53 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
<img class="footer" src="doxygen.png" alt="doxygen"/> | |||
</a> 1.8.8 | |||
</small></address> |
@@ -4,7 +4,7 @@ | |||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | |||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | |||
<meta name="generator" content="Doxygen 1.8.8"/> | |||
<title>SdFat: Arduino/libraries/SdFat/utility/FatFile.h File Reference</title> | |||
<title>SdFat: Arduino/libraries/SdFat/src/FatLib/FatFile.h File Reference</title> | |||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | |||
<script type="text/javascript" src="jquery.js"></script> | |||
<script type="text/javascript" src="dynsections.js"></script> | |||
@@ -80,7 +80,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<div id="nav-path" class="navpath"> | |||
<ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_97b7730287bc3bcd349854d6663367e4.html">utility</a></li> </ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_c18d6c86f7b0afecac5c3a8a9885031e.html">src</a></li><li class="navelem"><a class="el" href="dir_7e472674a7b7d2590a789f197241f95f.html">FatLib</a></li> </ul> | |||
</div> | |||
</div><!-- top --> | |||
<div class="header"> | |||
@@ -105,16 +105,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
</div><div class="textblock"><div class="dynheader"> | |||
Include dependency graph for FatFile.h:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_fat_file_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2utility_2_fat_file_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2utility_2_fat_file_8h" id="_arduino_2libraries_2_sd_fat_2utility_2_fat_file_8h"> | |||
<div class="center"><img src="_fat_file_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_file_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_file_8h" id="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_file_8h"> | |||
<area shape="rect" id="node9" href="_fat_lib_config_8h.html" title="configuration definitions " alt="" coords="106,171,211,197"/> <area shape="rect" id="node16" href="_fat_structs_8h.html" title="FAT file structures. " alt="" coords="338,171,432,197"/> <area shape="rect" id="node18" href="_fat_volume_8h.html" title="FatVolume class. " alt="" coords="196,96,292,123"/> <area shape="rect" id="node13" href="_sd_fat_config_8h.html" title="configuration definitions " alt="" coords="149,245,264,272"/> </map> | |||
</div> | |||
</div><div class="textblock"><div class="dynheader"> | |||
This graph shows which files directly or indirectly include this file:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_fat_file_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2utility_2_fat_file_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2utility_2_fat_file_8hdep" id="_arduino_2libraries_2_sd_fat_2utility_2_fat_file_8hdep"> | |||
<area shape="rect" id="node3" href="_arduino_files_8h.html" title="PrintFile class. " alt="" coords="24,97,179,138"/> <area shape="rect" id="node5" href="_fat_file_system_8h.html" title="FatFileSystem class. " alt="" coords="5,187,163,229"/> <area shape="rect" id="node7" href="ios_8h.html" title="ios_base and ios classes " alt="" coords="349,97,504,138"/> <area shape="rect" id="node17" href="fstream_8h.html" title="fstream, ifstream, and ofstream classes " alt="" coords="480,369,635,410"/> <area shape="rect" id="node23" href="_stdio_stream_8h.html" title="StdioStream class. " alt="" coords="595,97,749,138"/> <area shape="rect" id="node9" href="istream_8h.html" title="istream class " alt="" coords="187,187,341,229"/> <area shape="rect" id="node19" href="ostream_8h.html" title="ostream class " alt="" coords="365,187,520,229"/> <area shape="rect" id="node11" href="iostream_8h.html" title="iostream class " alt="" coords="333,278,488,319"/> <area shape="rect" id="node13" href="bufstream_8h.html" title="ibufstream and obufstream classes " alt="" coords="301,369,456,410"/> <area shape="rect" id="node15" href="_arduino_stream_8h.html" title="ArduinoInStream and ArduinoOutStream classes. " alt="" coords="299,459,457,501"/> </map> | |||
<div class="center"><img src="_fat_file_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_file_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_file_8hdep" id="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_file_8hdep"> | |||
<area shape="rect" id="node3" href="_arduino_files_8h.html" title="PrintFile class. " alt="" coords="29,97,200,138"/> <area shape="rect" id="node5" href="_fat_file_system_8h.html" title="FatFileSystem class. " alt="" coords="5,187,189,229"/> <area shape="rect" id="node7" href="ios_8h.html" title="ios_base and ios classes " alt="" coords="375,97,529,138"/> <area shape="rect" id="node17" href="fstream_8h.html" title="fstream, ifstream, and ofstream classes " alt="" coords="507,369,661,410"/> <area shape="rect" id="node23" href="_stdio_stream_8h.html" title="StdioStream class. " alt="" coords="621,97,792,138"/> <area shape="rect" id="node9" href="istream_8h.html" title="istream class " alt="" coords="213,187,368,229"/> <area shape="rect" id="node19" href="ostream_8h.html" title="ostream class " alt="" coords="392,187,547,229"/> <area shape="rect" id="node11" href="iostream_8h.html" title="iostream class " alt="" coords="359,278,513,319"/> <area shape="rect" id="node13" href="bufstream_8h.html" title="ibufstream and obufstream classes " alt="" coords="326,369,481,410"/> <area shape="rect" id="node15" href="_arduino_stream_8h.html" title="ArduinoInStream and ArduinoOutStream classes. " alt="" coords="311,459,496,501"/> </map> | |||
</div> | |||
</div><table class="memberdecls"> | |||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> | |||
@@ -327,7 +327,7 @@ Variables</h2></td></tr> | |||
</div><!-- contents --> | |||
<!-- start footer part --> | |||
<hr class="footer"/><address class="footer"><small> | |||
Generated on Sun Feb 1 2015 10:21:39 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
Generated on Sun Jul 19 2015 10:15:53 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
<img class="footer" src="doxygen.png" alt="doxygen"/> | |||
</a> 1.8.8 | |||
</small></address> |
@@ -4,7 +4,7 @@ | |||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | |||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | |||
<meta name="generator" content="Doxygen 1.8.8"/> | |||
<title>SdFat: Arduino/libraries/SdFat/utility/FatFileSystem.h File Reference</title> | |||
<title>SdFat: Arduino/libraries/SdFat/src/FatLib/FatFileSystem.h File Reference</title> | |||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | |||
<script type="text/javascript" src="jquery.js"></script> | |||
<script type="text/javascript" src="dynsections.js"></script> | |||
@@ -80,7 +80,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<div id="nav-path" class="navpath"> | |||
<ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_97b7730287bc3bcd349854d6663367e4.html">utility</a></li> </ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_c18d6c86f7b0afecac5c3a8a9885031e.html">src</a></li><li class="navelem"><a class="el" href="dir_7e472674a7b7d2590a789f197241f95f.html">FatLib</a></li> </ul> | |||
</div> | |||
</div><!-- top --> | |||
<div class="header"> | |||
@@ -99,8 +99,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
</div><div class="textblock"><div class="dynheader"> | |||
Include dependency graph for FatFileSystem.h:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_fat_file_system_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2utility_2_fat_file_system_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2utility_2_fat_file_system_8h" id="_arduino_2libraries_2_sd_fat_2utility_2_fat_file_system_8h"> | |||
<div class="center"><img src="_fat_file_system_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_file_system_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_file_system_8h" id="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_file_system_8h"> | |||
<area shape="rect" id="node3" href="_fat_volume_8h.html" title="FatVolume class. " alt="" coords="115,245,211,272"/> <area shape="rect" id="node18" href="_fat_file_8h.html" title="FatFile class. " alt="" coords="282,171,355,197"/> <area shape="rect" id="node28" href="_arduino_files_8h.html" title="PrintFile class. " alt="" coords="381,96,485,123"/> <area shape="rect" id="node7" href="_fat_lib_config_8h.html" title="configuration definitions " alt="" coords="337,320,441,347"/> <area shape="rect" id="node14" href="_fat_structs_8h.html" title="FAT file structures. " alt="" coords="5,320,99,347"/> <area shape="rect" id="node11" href="_sd_fat_config_8h.html" title="configuration definitions " alt="" coords="379,395,495,421"/> </map> | |||
</div> | |||
</div><table class="memberdecls"> | |||
@@ -115,7 +115,7 @@ Classes</h2></td></tr> | |||
</div></div><!-- contents --> | |||
<!-- start footer part --> | |||
<hr class="footer"/><address class="footer"><small> | |||
Generated on Sun Feb 1 2015 10:21:39 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
Generated on Sun Jul 19 2015 10:15:53 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
<img class="footer" src="doxygen.png" alt="doxygen"/> | |||
</a> 1.8.8 | |||
</small></address> |
@@ -4,7 +4,7 @@ | |||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | |||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | |||
<meta name="generator" content="Doxygen 1.8.8"/> | |||
<title>SdFat: Arduino/libraries/SdFat/utility/FatLibConfig.h File Reference</title> | |||
<title>SdFat: Arduino/libraries/SdFat/src/FatLib/FatLibConfig.h File Reference</title> | |||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | |||
<script type="text/javascript" src="jquery.js"></script> | |||
<script type="text/javascript" src="dynsections.js"></script> | |||
@@ -80,7 +80,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<div id="nav-path" class="navpath"> | |||
<ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_97b7730287bc3bcd349854d6663367e4.html">utility</a></li> </ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_c18d6c86f7b0afecac5c3a8a9885031e.html">src</a></li><li class="navelem"><a class="el" href="dir_7e472674a7b7d2590a789f197241f95f.html">FatLib</a></li> </ul> | |||
</div> | |||
</div><!-- top --> | |||
<div class="header"> | |||
@@ -98,16 +98,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
</div><div class="textblock"><div class="dynheader"> | |||
Include dependency graph for FatLibConfig.h:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_fat_lib_config_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2utility_2_fat_lib_config_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2utility_2_fat_lib_config_8h" id="_arduino_2libraries_2_sd_fat_2utility_2_fat_lib_config_8h"> | |||
<area shape="rect" id="node5" href="_sd_fat_config_8h.html" title="configuration definitions " alt="" coords="73,96,188,123"/> </map> | |||
<div class="center"><img src="_fat_lib_config_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_lib_config_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_lib_config_8h" id="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_lib_config_8h"> | |||
<area shape="rect" id="node5" href="_sd_fat_config_8h.html" title="configuration definitions " alt="" coords="81,96,196,123"/> </map> | |||
</div> | |||
</div><div class="textblock"><div class="dynheader"> | |||
This graph shows which files directly or indirectly include this file:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_fat_lib_config_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2utility_2_fat_lib_config_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2utility_2_fat_lib_config_8hdep" id="_arduino_2libraries_2_sd_fat_2utility_2_fat_lib_config_8hdep"> | |||
<area shape="rect" id="node3" href="_arduino_files_8h.html" title="PrintFile class. " alt="" coords="23,278,178,319"/> <area shape="rect" id="node7" href="_fat_file_8h.html" title="FatFile class. " alt="" coords="195,187,350,229"/> <area shape="rect" id="node18" href="_arduino_stream_8h.html" title="ArduinoInStream and ArduinoOutStream classes. " alt="" coords="480,641,638,682"/> <area shape="rect" id="node29" href="_fat_volume_8h.html" title="FatVolume class. " alt="" coords="81,97,235,138"/> <area shape="rect" id="node5" href="_fat_file_system_8h.html" title="FatFileSystem class. " alt="" coords="22,369,179,410"/> <area shape="rect" id="node10" href="ios_8h.html" title="ios_base and ios classes " alt="" coords="253,278,407,319"/> <area shape="rect" id="node20" href="fstream_8h.html" title="fstream, ifstream, and ofstream classes " alt="" coords="514,550,669,591"/> <area shape="rect" id="node26" href="_stdio_stream_8h.html" title="StdioStream class. " alt="" coords="431,278,586,319"/> <area shape="rect" id="node12" href="istream_8h.html" title="istream class " alt="" coords="407,369,562,410"/> <area shape="rect" id="node22" href="ostream_8h.html" title="ostream class " alt="" coords="229,369,383,410"/> <area shape="rect" id="node14" href="iostream_8h.html" title="iostream class " alt="" coords="371,459,526,501"/> <area shape="rect" id="node16" href="bufstream_8h.html" title="ibufstream and obufstream classes " alt="" coords="335,550,490,591"/> </map> | |||
<div class="center"><img src="_fat_lib_config_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_lib_config_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_lib_config_8hdep" id="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_lib_config_8hdep"> | |||
<area shape="rect" id="node3" href="_arduino_files_8h.html" title="PrintFile class. " alt="" coords="24,278,194,319"/> <area shape="rect" id="node7" href="_fat_file_8h.html" title="FatFile class. " alt="" coords="212,187,366,229"/> <area shape="rect" id="node18" href="_arduino_stream_8h.html" title="ArduinoInStream and ArduinoOutStream classes. " alt="" coords="498,641,682,682"/> <area shape="rect" id="node29" href="_fat_volume_8h.html" title="FatVolume class. " alt="" coords="89,97,252,138"/> <area shape="rect" id="node5" href="_fat_file_system_8h.html" title="FatFileSystem class. " alt="" coords="17,369,201,410"/> <area shape="rect" id="node10" href="ios_8h.html" title="ios_base and ios classes " alt="" coords="269,278,424,319"/> <area shape="rect" id="node20" href="fstream_8h.html" title="fstream, ifstream, and ofstream classes " alt="" coords="546,550,701,591"/> <area shape="rect" id="node26" href="_stdio_stream_8h.html" title="StdioStream class. " alt="" coords="448,278,618,319"/> <area shape="rect" id="node12" href="istream_8h.html" title="istream class " alt="" coords="426,369,581,410"/> <area shape="rect" id="node22" href="ostream_8h.html" title="ostream class " alt="" coords="248,369,402,410"/> <area shape="rect" id="node14" href="iostream_8h.html" title="iostream class " alt="" coords="396,459,550,501"/> <area shape="rect" id="node16" href="bufstream_8h.html" title="ibufstream and obufstream classes " alt="" coords="366,550,521,591"/> </map> | |||
</div> | |||
</div><table class="memberdecls"> | |||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> | |||
@@ -148,7 +148,7 @@ Macros</h2></td></tr> | |||
</div><!-- contents --> | |||
<!-- start footer part --> | |||
<hr class="footer"/><address class="footer"><small> | |||
Generated on Sun Feb 1 2015 10:21:39 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
Generated on Sun Jul 19 2015 10:15:53 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
<img class="footer" src="doxygen.png" alt="doxygen"/> | |||
</a> 1.8.8 | |||
</small></address> |
@@ -4,7 +4,7 @@ | |||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | |||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | |||
<meta name="generator" content="Doxygen 1.8.8"/> | |||
<title>SdFat: Arduino/libraries/SdFat/utility/FatStructs.h File Reference</title> | |||
<title>SdFat: Arduino/libraries/SdFat/src/FatLib/FatStructs.h File Reference</title> | |||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | |||
<script type="text/javascript" src="jquery.js"></script> | |||
<script type="text/javascript" src="dynsections.js"></script> | |||
@@ -80,7 +80,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<div id="nav-path" class="navpath"> | |||
<ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_97b7730287bc3bcd349854d6663367e4.html">utility</a></li> </ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_c18d6c86f7b0afecac5c3a8a9885031e.html">src</a></li><li class="navelem"><a class="el" href="dir_7e472674a7b7d2590a789f197241f95f.html">FatLib</a></li> </ul> | |||
</div> | |||
</div><!-- top --> | |||
<div class="header"> | |||
@@ -99,9 +99,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<div class="textblock"><div class="dynheader"> | |||
This graph shows which files directly or indirectly include this file:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_fat_structs_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2utility_2_fat_structs_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2utility_2_fat_structs_8hdep" id="_arduino_2libraries_2_sd_fat_2utility_2_fat_structs_8hdep"> | |||
<area shape="rect" id="node3" href="_fat_file_8h.html" title="FatFile class. " alt="" coords="407,187,561,229"/> <area shape="rect" id="node28" href="_fat_volume_8h.html" title="FatVolume class. " alt="" coords="521,97,676,138"/> <area shape="rect" id="node5" href="_arduino_files_8h.html" title="PrintFile class. " alt="" coords="643,278,797,319"/> <area shape="rect" id="node7" href="_fat_file_system_8h.html" title="FatFileSystem class. " alt="" coords="641,369,799,410"/> <area shape="rect" id="node9" href="ios_8h.html" title="ios_base and ios classes " alt="" coords="184,278,339,319"/> <area shape="rect" id="node19" href="fstream_8h.html" title="fstream, ifstream, and ofstream classes " alt="" coords="299,550,453,591"/> <area shape="rect" id="node25" href="_stdio_stream_8h.html" title="StdioStream class. " alt="" coords="464,278,619,319"/> <area shape="rect" id="node11" href="istream_8h.html" title="istream class " alt="" coords="184,369,339,410"/> <area shape="rect" id="node21" href="ostream_8h.html" title="ostream class " alt="" coords="5,369,160,410"/> <area shape="rect" id="node13" href="iostream_8h.html" title="iostream class " alt="" coords="152,459,307,501"/> <area shape="rect" id="node15" href="bufstream_8h.html" title="ibufstream and obufstream classes " alt="" coords="120,550,275,591"/> <area shape="rect" id="node17" href="_arduino_stream_8h.html" title="ArduinoInStream and ArduinoOutStream classes. " alt="" coords="118,641,276,682"/> </map> | |||
<div class="center"><img src="_fat_structs_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_structs_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_structs_8hdep" id="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_structs_8hdep"> | |||
<area shape="rect" id="node3" href="_fat_file_8h.html" title="FatFile class. " alt="" coords="411,187,565,229"/> <area shape="rect" id="node28" href="_fat_volume_8h.html" title="FatVolume class. " alt="" coords="525,97,688,138"/> <area shape="rect" id="node5" href="_arduino_files_8h.html" title="PrintFile class. " alt="" coords="659,278,829,319"/> <area shape="rect" id="node7" href="_fat_file_system_8h.html" title="FatFileSystem class. " alt="" coords="652,369,836,410"/> <area shape="rect" id="node9" href="ios_8h.html" title="ios_base and ios classes " alt="" coords="184,278,339,319"/> <area shape="rect" id="node19" href="fstream_8h.html" title="fstream, ifstream, and ofstream classes " alt="" coords="299,550,453,591"/> <area shape="rect" id="node25" href="_stdio_stream_8h.html" title="StdioStream class. " alt="" coords="464,278,635,319"/> <area shape="rect" id="node11" href="istream_8h.html" title="istream class " alt="" coords="184,369,339,410"/> <area shape="rect" id="node21" href="ostream_8h.html" title="ostream class " alt="" coords="5,369,160,410"/> <area shape="rect" id="node13" href="iostream_8h.html" title="iostream class " alt="" coords="151,459,305,501"/> <area shape="rect" id="node15" href="bufstream_8h.html" title="ibufstream and obufstream classes " alt="" coords="118,550,273,591"/> <area shape="rect" id="node17" href="_arduino_stream_8h.html" title="ArduinoInStream and ArduinoOutStream classes. " alt="" coords="103,641,288,682"/> </map> | |||
</div> | |||
</div><table class="memberdecls"> | |||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> | |||
@@ -1244,7 +1244,7 @@ Variables</h2></td></tr> | |||
</div><!-- contents --> | |||
<!-- start footer part --> | |||
<hr class="footer"/><address class="footer"><small> | |||
Generated on Sun Feb 1 2015 10:21:39 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
Generated on Sun Jul 19 2015 10:15:53 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
<img class="footer" src="doxygen.png" alt="doxygen"/> | |||
</a> 1.8.8 | |||
</small></address> |
@@ -4,7 +4,7 @@ | |||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | |||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | |||
<meta name="generator" content="Doxygen 1.8.8"/> | |||
<title>SdFat: Arduino/libraries/SdFat/utility/FatVolume.h File Reference</title> | |||
<title>SdFat: Arduino/libraries/SdFat/src/FatLib/FatVolume.h File Reference</title> | |||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | |||
<script type="text/javascript" src="jquery.js"></script> | |||
<script type="text/javascript" src="dynsections.js"></script> | |||
@@ -80,7 +80,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<div id="nav-path" class="navpath"> | |||
<ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_97b7730287bc3bcd349854d6663367e4.html">utility</a></li> </ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_c18d6c86f7b0afecac5c3a8a9885031e.html">src</a></li><li class="navelem"><a class="el" href="dir_7e472674a7b7d2590a789f197241f95f.html">FatLib</a></li> </ul> | |||
</div> | |||
</div><!-- top --> | |||
<div class="header"> | |||
@@ -101,16 +101,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
</div><div class="textblock"><div class="dynheader"> | |||
Include dependency graph for FatVolume.h:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_fat_volume_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2utility_2_fat_volume_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2utility_2_fat_volume_8h" id="_arduino_2libraries_2_sd_fat_2utility_2_fat_volume_8h"> | |||
<div class="center"><img src="_fat_volume_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_volume_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_volume_8h" id="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_volume_8h"> | |||
<area shape="rect" id="node5" href="_fat_lib_config_8h.html" title="configuration definitions " alt="" coords="97,96,201,123"/> <area shape="rect" id="node12" href="_fat_structs_8h.html" title="FAT file structures. " alt="" coords="226,96,320,123"/> <area shape="rect" id="node9" href="_sd_fat_config_8h.html" title="configuration definitions " alt="" coords="139,171,255,197"/> </map> | |||
</div> | |||
</div><div class="textblock"><div class="dynheader"> | |||
This graph shows which files directly or indirectly include this file:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_fat_volume_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2utility_2_fat_volume_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2utility_2_fat_volume_8hdep" id="_arduino_2libraries_2_sd_fat_2utility_2_fat_volume_8hdep"> | |||
<area shape="rect" id="node3" href="_fat_file_8h.html" title="FatFile class. " alt="" coords="407,97,561,138"/> <area shape="rect" id="node7" href="_fat_file_system_8h.html" title="FatFileSystem class. " alt="" coords="641,278,799,319"/> <area shape="rect" id="node5" href="_arduino_files_8h.html" title="PrintFile class. " alt="" coords="643,187,797,229"/> <area shape="rect" id="node9" href="ios_8h.html" title="ios_base and ios classes " alt="" coords="184,187,339,229"/> <area shape="rect" id="node19" href="fstream_8h.html" title="fstream, ifstream, and ofstream classes " alt="" coords="299,459,453,501"/> <area shape="rect" id="node25" href="_stdio_stream_8h.html" title="StdioStream class. " alt="" coords="464,187,619,229"/> <area shape="rect" id="node11" href="istream_8h.html" title="istream class " alt="" coords="184,278,339,319"/> <area shape="rect" id="node21" href="ostream_8h.html" title="ostream class " alt="" coords="5,278,160,319"/> <area shape="rect" id="node13" href="iostream_8h.html" title="iostream class " alt="" coords="152,369,307,410"/> <area shape="rect" id="node15" href="bufstream_8h.html" title="ibufstream and obufstream classes " alt="" coords="120,459,275,501"/> <area shape="rect" id="node17" href="_arduino_stream_8h.html" title="ArduinoInStream and ArduinoOutStream classes. " alt="" coords="118,550,276,591"/> </map> | |||
<div class="center"><img src="_fat_volume_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_volume_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_volume_8hdep" id="_arduino_2libraries_2_sd_fat_2src_2_fat_lib_2_fat_volume_8hdep"> | |||
<area shape="rect" id="node3" href="_fat_file_8h.html" title="FatFile class. " alt="" coords="411,97,565,138"/> <area shape="rect" id="node7" href="_fat_file_system_8h.html" title="FatFileSystem class. " alt="" coords="652,278,836,319"/> <area shape="rect" id="node5" href="_arduino_files_8h.html" title="PrintFile class. " alt="" coords="659,187,829,229"/> <area shape="rect" id="node9" href="ios_8h.html" title="ios_base and ios classes " alt="" coords="184,187,339,229"/> <area shape="rect" id="node19" href="fstream_8h.html" title="fstream, ifstream, and ofstream classes " alt="" coords="299,459,453,501"/> <area shape="rect" id="node25" href="_stdio_stream_8h.html" title="StdioStream class. " alt="" coords="464,187,635,229"/> <area shape="rect" id="node11" href="istream_8h.html" title="istream class " alt="" coords="184,278,339,319"/> <area shape="rect" id="node21" href="ostream_8h.html" title="ostream class " alt="" coords="5,278,160,319"/> <area shape="rect" id="node13" href="iostream_8h.html" title="iostream class " alt="" coords="151,369,305,410"/> <area shape="rect" id="node15" href="bufstream_8h.html" title="ibufstream and obufstream classes " alt="" coords="118,459,273,501"/> <area shape="rect" id="node17" href="_arduino_stream_8h.html" title="ArduinoInStream and ArduinoOutStream classes. " alt="" coords="103,550,288,591"/> </map> | |||
</div> | |||
</div><table class="memberdecls"> | |||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> | |||
@@ -149,7 +149,7 @@ Typedefs</h2></td></tr> | |||
</div><!-- contents --> | |||
<!-- start footer part --> | |||
<hr class="footer"/><address class="footer"><small> | |||
Generated on Sun Feb 1 2015 10:21:39 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
Generated on Sun Jul 19 2015 10:15:53 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
<img class="footer" src="doxygen.png" alt="doxygen"/> | |||
</a> 1.8.8 | |||
</small></address> |
@@ -0,0 +1,172 @@ | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml"> | |||
<head> | |||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | |||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | |||
<meta name="generator" content="Doxygen 1.8.8"/> | |||
<title>SdFat: Arduino/libraries/SdFat/src/FreeStack.h File Reference</title> | |||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | |||
<script type="text/javascript" src="jquery.js"></script> | |||
<script type="text/javascript" src="dynsections.js"></script> | |||
<link href="search/search.css" rel="stylesheet" type="text/css"/> | |||
<script type="text/javascript" src="search/search.js"></script> | |||
<script type="text/javascript"> | |||
$(document).ready(function() { searchBox.OnSelectItem(0); }); | |||
</script> | |||
<link href="doxygen.css" rel="stylesheet" type="text/css" /> | |||
</head> | |||
<body> | |||
<div id="top"><!-- do not remove this div, it is closed by doxygen! --> | |||
<div id="titlearea"> | |||
<table cellspacing="0" cellpadding="0"> | |||
<tbody> | |||
<tr style="height: 56px;"> | |||
<td style="padding-left: 0.5em;"> | |||
<div id="projectname">SdFat | |||
</div> | |||
</td> | |||
</tr> | |||
</tbody> | |||
</table> | |||
</div> | |||
<!-- end header part --> | |||
<!-- Generated by Doxygen 1.8.8 --> | |||
<script type="text/javascript"> | |||
var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
</script> | |||
<div id="navrow1" class="tabs"> | |||
<ul class="tablist"> | |||
<li><a href="index.html"><span>Main Page</span></a></li> | |||
<li><a href="modules.html"><span>Modules</span></a></li> | |||
<li><a href="annotated.html"><span>Classes</span></a></li> | |||
<li class="current"><a href="files.html"><span>Files</span></a></li> | |||
<li> | |||
<div id="MSearchBox" class="MSearchBoxInactive"> | |||
<span class="left"> | |||
<img id="MSearchSelect" src="search/mag_sel.png" | |||
onmouseover="return searchBox.OnSearchSelectShow()" | |||
onmouseout="return searchBox.OnSearchSelectHide()" | |||
alt=""/> | |||
<input type="text" id="MSearchField" value="Search" accesskey="S" | |||
onfocus="searchBox.OnSearchFieldFocus(true)" | |||
onblur="searchBox.OnSearchFieldFocus(false)" | |||
onkeyup="searchBox.OnSearchFieldChange(event)"/> | |||
</span><span class="right"> | |||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> | |||
</span> | |||
</div> | |||
</li> | |||
</ul> | |||
</div> | |||
<div id="navrow2" class="tabs2"> | |||
<ul class="tablist"> | |||
<li><a href="files.html"><span>File List</span></a></li> | |||
<li><a href="globals.html"><span>File Members</span></a></li> | |||
</ul> | |||
</div> | |||
<!-- window showing the filter options --> | |||
<div id="MSearchSelectWindow" | |||
onmouseover="return searchBox.OnSearchSelectShow()" | |||
onmouseout="return searchBox.OnSearchSelectHide()" | |||
onkeydown="return searchBox.OnSearchSelectKey(event)"> | |||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Modules</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Pages</a></div> | |||
<!-- iframe showing the search results (closed by default) --> | |||
<div id="MSearchResultsWindow"> | |||
<iframe src="javascript:void(0)" frameborder="0" | |||
name="MSearchResults" id="MSearchResults"> | |||
</iframe> | |||
</div> | |||
<div id="nav-path" class="navpath"> | |||
<ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_c18d6c86f7b0afecac5c3a8a9885031e.html">src</a></li> </ul> | |||
</div> | |||
</div><!-- top --> | |||
<div class="header"> | |||
<div class="summary"> | |||
<a href="#func-members">Functions</a> | | |||
<a href="#var-members">Variables</a> </div> | |||
<div class="headertitle"> | |||
<div class="title">FreeStack.h File Reference</div> </div> | |||
</div><!--header--> | |||
<div class="contents"> | |||
<p><a class="el" href="_free_stack_8h.html#a2c0121d5649d35329a8d0a71e4ffb89b">FreeStack()</a> function. | |||
<a href="#details">More...</a></p> | |||
<table class="memberdecls"> | |||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> | |||
Functions</h2></td></tr> | |||
<tr class="memitem:a2c0121d5649d35329a8d0a71e4ffb89b"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="_free_stack_8h.html#a2c0121d5649d35329a8d0a71e4ffb89b">FreeStack</a> ()</td></tr> | |||
<tr class="separator:a2c0121d5649d35329a8d0a71e4ffb89b"><td class="memSeparator" colspan="2"> </td></tr> | |||
</table><table class="memberdecls"> | |||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a> | |||
Variables</h2></td></tr> | |||
<tr class="memitem:ad193a2cc121e0d4614a1c21eb463fb56"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="_free_stack_8h.html#ad193a2cc121e0d4614a1c21eb463fb56">__brkval</a></td></tr> | |||
<tr class="separator:ad193a2cc121e0d4614a1c21eb463fb56"><td class="memSeparator" colspan="2"> </td></tr> | |||
<tr class="memitem:adbad17f740c2d7f2bc4833681c93c932"><td class="memItemLeft" align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="_free_stack_8h.html#adbad17f740c2d7f2bc4833681c93c932">__bss_end</a></td></tr> | |||
<tr class="separator:adbad17f740c2d7f2bc4833681c93c932"><td class="memSeparator" colspan="2"> </td></tr> | |||
</table> | |||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> | |||
<div class="textblock"><p><a class="el" href="_free_stack_8h.html#a2c0121d5649d35329a8d0a71e4ffb89b">FreeStack()</a> function. </p> | |||
</div><h2 class="groupheader">Function Documentation</h2> | |||
<a class="anchor" id="a2c0121d5649d35329a8d0a71e4ffb89b"></a> | |||
<div class="memitem"> | |||
<div class="memproto"> | |||
<table class="mlabels"> | |||
<tr> | |||
<td class="mlabels-left"> | |||
<table class="memname"> | |||
<tr> | |||
<td class="memname">static int FreeStack </td> | |||
<td>(</td> | |||
<td class="paramname"></td><td>)</td> | |||
<td></td> | |||
</tr> | |||
</table> | |||
</td> | |||
<td class="mlabels-right"> | |||
<span class="mlabels"><span class="mlabel">static</span></span> </td> | |||
</tr> | |||
</table> | |||
</div><div class="memdoc"> | |||
<p>Amount of free stack space. </p><dl class="section return"><dt>Returns</dt><dd>The number of free bytes. </dd></dl> | |||
</div> | |||
</div> | |||
<h2 class="groupheader">Variable Documentation</h2> | |||
<a class="anchor" id="ad193a2cc121e0d4614a1c21eb463fb56"></a> | |||
<div class="memitem"> | |||
<div class="memproto"> | |||
<table class="memname"> | |||
<tr> | |||
<td class="memname">char* __brkval</td> | |||
</tr> | |||
</table> | |||
</div><div class="memdoc"> | |||
<p>boundary between stack and heap. </p> | |||
</div> | |||
</div> | |||
<a class="anchor" id="adbad17f740c2d7f2bc4833681c93c932"></a> | |||
<div class="memitem"> | |||
<div class="memproto"> | |||
<table class="memname"> | |||
<tr> | |||
<td class="memname">char __bss_end</td> | |||
</tr> | |||
</table> | |||
</div><div class="memdoc"> | |||
<p>End of bss section. </p> | |||
</div> | |||
</div> | |||
</div><!-- contents --> | |||
<!-- start footer part --> | |||
<hr class="footer"/><address class="footer"><small> | |||
Generated on Sun Jul 19 2015 10:15:53 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
<img class="footer" src="doxygen.png" alt="doxygen"/> | |||
</a> 1.8.8 | |||
</small></address> | |||
</body> | |||
</html> |
@@ -4,7 +4,7 @@ | |||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | |||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | |||
<meta name="generator" content="Doxygen 1.8.8"/> | |||
<title>SdFat: Arduino/libraries/SdFat/SdFat.h File Reference</title> | |||
<title>SdFat: Arduino/libraries/SdFat/src/SdFat.h File Reference</title> | |||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | |||
<script type="text/javascript" src="jquery.js"></script> | |||
<script type="text/javascript" src="dynsections.js"></script> | |||
@@ -80,7 +80,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<div id="nav-path" class="navpath"> | |||
<ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li> </ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_c18d6c86f7b0afecac5c3a8a9885031e.html">src</a></li> </ul> | |||
</div> | |||
</div><!-- top --> | |||
<div class="header"> | |||
@@ -94,20 +94,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<p><a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> class. | |||
<a href="#details">More...</a></p> | |||
<div class="textblock"><code>#include "<a class="el" href="_sd_spi_card_8h.html">SdSpiCard.h</a>"</code><br /> | |||
<code>#include "utility/FatLib.h"</code><br /> | |||
<div class="textblock"><code>#include "<a class="el" href="_sd_spi_card_8h.html">SdSpiCard/SdSpiCard.h</a>"</code><br /> | |||
<code>#include "FatLib/FatLib.h"</code><br /> | |||
</div><div class="textblock"><div class="dynheader"> | |||
Include dependency graph for SdFat.h:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_sd_fat_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2_sd_fat_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2_sd_fat_8h" id="_arduino_2libraries_2_sd_fat_2_sd_fat_8h"> | |||
<area shape="rect" id="node3" href="_sd_spi_card_8h.html" title="SdSpiCard class for V2 SD/SDHC cards. " alt="" coords="40,96,134,123"/> <area shape="rect" id="node7" href="_sd_fat_config_8h.html" title="configuration definitions " alt="" coords="19,245,123,272"/> <area shape="rect" id="node13" href="_sd_spi_8h.html" title="SdSpi class for V2 SD/SDHC cards. " alt="" coords="183,171,250,197"/> <area shape="rect" id="node17" href="_soft_s_p_i_8h.html" title="Software SPI. " alt="" coords="198,245,310,272"/> <area shape="rect" id="node19" href="_digital_pin_8h.html" title="Fast Digital Pin functions. " alt="" coords="210,320,298,347"/> </map> | |||
<div class="center"><img src="_sd_fat_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_sd_fat_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_sd_fat_8h" id="_arduino_2libraries_2_sd_fat_2src_2_sd_fat_8h"> | |||
<area shape="rect" id="node3" href="_sd_spi_card_8h.html" title="SdSpiCard class for V2 SD/SDHC cards. " alt="" coords="7,96,167,123"/> <area shape="rect" id="node7" href="_sd_fat_config_8h.html" title="configuration definitions " alt="" coords="25,245,129,272"/> <area shape="rect" id="node13" href="_sd_spi_8h.html" title="SdSpi class for V2 SD/SDHC cards. " alt="" coords="183,171,250,197"/> <area shape="rect" id="node19" href="_soft_s_p_i_8h.html" title="Software SPI. " alt="" coords="283,245,361,272"/> <area shape="rect" id="node21" href="_digital_pin_8h.html" title="Fast Digital Pin functions. " alt="" coords="262,320,350,347"/> </map> | |||
</div> | |||
</div><div class="textblock"><div class="dynheader"> | |||
This graph shows which files directly or indirectly include this file:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_sd_fat_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2_sd_fat_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2_sd_fat_8hdep" id="_arduino_2libraries_2_sd_fat_2_sd_fat_8hdep"> | |||
<div class="center"><img src="_sd_fat_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_sd_fat_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_sd_fat_8hdep" id="_arduino_2libraries_2_sd_fat_2src_2_sd_fat_8hdep"> | |||
<area shape="rect" id="node3" href="_sd_fat_util_8h.html" title="Useful utility functions. " alt="" coords="5,97,160,138"/> </map> | |||
</div> | |||
</div><table class="memberdecls"> | |||
@@ -134,7 +134,7 @@ Classes</h2></td></tr> | |||
</table><table class="memberdecls"> | |||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> | |||
Macros</h2></td></tr> | |||
<tr class="memitem:aca25ecce379f446043bdee2c55304210"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_8h.html#aca25ecce379f446043bdee2c55304210">SD_FAT_VERSION</a>   20150201</td></tr> | |||
<tr class="memitem:aca25ecce379f446043bdee2c55304210"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_8h.html#aca25ecce379f446043bdee2c55304210">SD_FAT_VERSION</a>   20150718</td></tr> | |||
<tr class="separator:aca25ecce379f446043bdee2c55304210"><td class="memSeparator" colspan="2"> </td></tr> | |||
</table> | |||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> | |||
@@ -145,7 +145,7 @@ Macros</h2></td></tr> | |||
<div class="memproto"> | |||
<table class="memname"> | |||
<tr> | |||
<td class="memname">#define SD_FAT_VERSION   20150201</td> | |||
<td class="memname">#define SD_FAT_VERSION   20150718</td> | |||
</tr> | |||
</table> | |||
</div><div class="memdoc"> | |||
@@ -156,7 +156,7 @@ Macros</h2></td></tr> | |||
</div><!-- contents --> | |||
<!-- start footer part --> | |||
<hr class="footer"/><address class="footer"><small> | |||
Generated on Sun Feb 1 2015 10:21:39 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
Generated on Sun Jul 19 2015 10:15:53 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
<img class="footer" src="doxygen.png" alt="doxygen"/> | |||
</a> 1.8.8 | |||
</small></address> |
@@ -4,7 +4,7 @@ | |||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | |||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | |||
<meta name="generator" content="Doxygen 1.8.8"/> | |||
<title>SdFat: Arduino/libraries/SdFat/SdFatConfig.h File Reference</title> | |||
<title>SdFat: Arduino/libraries/SdFat/src/SdFatConfig.h File Reference</title> | |||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | |||
<script type="text/javascript" src="jquery.js"></script> | |||
<script type="text/javascript" src="dynsections.js"></script> | |||
@@ -80,7 +80,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<div id="nav-path" class="navpath"> | |||
<ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li> </ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_c18d6c86f7b0afecac5c3a8a9885031e.html">src</a></li> </ul> | |||
</div> | |||
</div><!-- top --> | |||
<div class="header"> | |||
@@ -98,16 +98,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
</div><div class="textblock"><div class="dynheader"> | |||
Include dependency graph for SdFatConfig.h:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_sd_fat_config_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2_sd_fat_config_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2_sd_fat_config_8h" id="_arduino_2libraries_2_sd_fat_2_sd_fat_config_8h"> | |||
<div class="center"><img src="_sd_fat_config_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_sd_fat_config_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_sd_fat_config_8h" id="_arduino_2libraries_2_sd_fat_2src_2_sd_fat_config_8h"> | |||
</map> | |||
</div> | |||
</div><div class="textblock"><div class="dynheader"> | |||
This graph shows which files directly or indirectly include this file:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_sd_fat_config_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2_sd_fat_config_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2_sd_fat_config_8hdep" id="_arduino_2libraries_2_sd_fat_2_sd_fat_config_8hdep"> | |||
<area shape="rect" id="node3" href="_sd_spi_card_8h.html" title="SdSpiCard class for V2 SD/SDHC cards. " alt="" coords="5,187,160,229"/> <area shape="rect" id="node9" href="_fat_lib_config_8h.html" title="configuration definitions " alt="" coords="464,97,619,138"/> <area shape="rect" id="node42" href="_sd_spi_8h.html" title="SdSpi class for V2 SD/SDHC cards. " alt="" coords="5,97,160,138"/> <area shape="rect" id="node5" href="_sd_fat_8h.html" title="SdFat class. " alt="" coords="5,278,160,319"/> <area shape="rect" id="node7" href="_sd_fat_util_8h.html" title="Useful utility functions. " alt="" coords="5,369,160,410"/> <area shape="rect" id="node11" href="_arduino_files_8h.html" title="PrintFile class. " alt="" coords="693,369,848,410"/> <area shape="rect" id="node15" href="_fat_file_8h.html" title="FatFile class. " alt="" coords="464,278,619,319"/> <area shape="rect" id="node26" href="_arduino_stream_8h.html" title="ArduinoInStream and ArduinoOutStream classes. " alt="" coords="265,731,423,773"/> <area shape="rect" id="node37" href="_fat_volume_8h.html" title="FatVolume class. " alt="" coords="693,187,848,229"/> <area shape="rect" id="node13" href="_fat_file_system_8h.html" title="FatFileSystem class. " alt="" coords="692,459,849,501"/> <area shape="rect" id="node18" href="ios_8h.html" title="ios_base and ios classes " alt="" coords="464,369,619,410"/> <area shape="rect" id="node28" href="fstream_8h.html" title="fstream, ifstream, and ofstream classes " alt="" coords="235,641,389,682"/> <area shape="rect" id="node34" href="_stdio_stream_8h.html" title="StdioStream class. " alt="" coords="285,369,440,410"/> <area shape="rect" id="node20" href="istream_8h.html" title="istream class " alt="" coords="297,459,452,501"/> <area shape="rect" id="node30" href="ostream_8h.html" title="ostream class " alt="" coords="476,459,631,501"/> <area shape="rect" id="node22" href="iostream_8h.html" title="iostream class " alt="" coords="309,550,464,591"/> <area shape="rect" id="node24" href="bufstream_8h.html" title="ibufstream and obufstream classes " alt="" coords="413,641,568,682"/> </map> | |||
<div class="center"><img src="_sd_fat_config_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_sd_fat_config_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_sd_fat_config_8hdep" id="_arduino_2libraries_2_sd_fat_2src_2_sd_fat_config_8hdep"> | |||
<area shape="rect" id="node3" href="_sd_spi_card_8h.html" title="SdSpiCard class for V2 SD/SDHC cards. " alt="" coords="5,187,192,229"/> <area shape="rect" id="node9" href="_sd_spi_8h.html" title="SdSpi class for V2 SD/SDHC cards. " alt="" coords="19,97,179,138"/> <area shape="rect" id="node12" href="_fat_lib_config_8h.html" title="configuration definitions " alt="" coords="504,97,675,138"/> <area shape="rect" id="node5" href="_sd_fat_8h.html" title="SdFat class. " alt="" coords="21,278,176,319"/> <area shape="rect" id="node7" href="_sd_fat_util_8h.html" title="Useful utility functions. " alt="" coords="21,369,176,410"/> <area shape="rect" id="node14" href="_arduino_files_8h.html" title="PrintFile class. " alt="" coords="741,369,912,410"/> <area shape="rect" id="node18" href="_fat_file_8h.html" title="FatFile class. " alt="" coords="512,278,667,319"/> <area shape="rect" id="node29" href="_arduino_stream_8h.html" title="ArduinoInStream and ArduinoOutStream classes. " alt="" coords="283,731,468,773"/> <area shape="rect" id="node40" href="_fat_volume_8h.html" title="FatVolume class. " alt="" coords="741,187,904,229"/> <area shape="rect" id="node16" href="_fat_file_system_8h.html" title="FatFileSystem class. " alt="" coords="735,459,919,501"/> <area shape="rect" id="node21" href="ios_8h.html" title="ios_base and ios classes " alt="" coords="512,369,667,410"/> <area shape="rect" id="node31" href="fstream_8h.html" title="fstream, ifstream, and ofstream classes " alt="" coords="267,641,421,682"/> <area shape="rect" id="node37" href="_stdio_stream_8h.html" title="StdioStream class. " alt="" coords="317,369,488,410"/> <area shape="rect" id="node23" href="istream_8h.html" title="istream class " alt="" coords="355,459,509,501"/> <area shape="rect" id="node33" href="ostream_8h.html" title="ostream class " alt="" coords="533,459,688,501"/> <area shape="rect" id="node25" href="iostream_8h.html" title="iostream class " alt="" coords="411,550,565,591"/> <area shape="rect" id="node27" href="bufstream_8h.html" title="ibufstream and obufstream classes " alt="" coords="446,641,601,682"/> </map> | |||
</div> | |||
</div><table class="memberdecls"> | |||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> | |||
@@ -116,14 +116,18 @@ Macros</h2></td></tr> | |||
<tr class="separator:aa918e5b1946ba4be891b081607e8193f"><td class="memSeparator" colspan="2"> </td></tr> | |||
<tr class="memitem:a9a2b1ca4d91cff876f48deeaacbc33da"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a9a2b1ca4d91cff876f48deeaacbc33da">DESTRUCTOR_CLOSES_FILE</a>   0</td></tr> | |||
<tr class="separator:a9a2b1ca4d91cff876f48deeaacbc33da"><td class="memSeparator" colspan="2"> </td></tr> | |||
<tr class="memitem:a5fa85e013e8661465ff4bc2395d77dd1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a5fa85e013e8661465ff4bc2395d77dd1">ENABLE_SPI_TRANSACTION</a>   0</td></tr> | |||
<tr class="separator:a5fa85e013e8661465ff4bc2395d77dd1"><td class="memSeparator" colspan="2"> </td></tr> | |||
<tr class="memitem:a0c1ace70ac452b3af13a00950551b3df"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a0c1ace70ac452b3af13a00950551b3df">ENABLE_SPI_TRANSACTIONS</a>   0</td></tr> | |||
<tr class="separator:a0c1ace70ac452b3af13a00950551b3df"><td class="memSeparator" colspan="2"> </td></tr> | |||
<tr class="memitem:a360adabab0d776df344efa2f8cd34b83"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a360adabab0d776df344efa2f8cd34b83">ENABLE_SPI_YIELD</a>   0</td></tr> | |||
<tr class="separator:a360adabab0d776df344efa2f8cd34b83"><td class="memSeparator" colspan="2"> </td></tr> | |||
<tr class="memitem:a270eefdaec4778f2a491658f34f61b17"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a270eefdaec4778f2a491658f34f61b17">ENDL_CALLS_FLUSH</a>   0</td></tr> | |||
<tr class="separator:a270eefdaec4778f2a491658f34f61b17"><td class="memSeparator" colspan="2"> </td></tr> | |||
<tr class="memitem:a28998c5daf4bd038f4f93172698320b1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a28998c5daf4bd038f4f93172698320b1">FAT12_SUPPORT</a>   0</td></tr> | |||
<tr class="separator:a28998c5daf4bd038f4f93172698320b1"><td class="memSeparator" colspan="2"> </td></tr> | |||
<tr class="memitem:ac2865dac8fdbb4fff47105db32ddf05b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#ac2865dac8fdbb4fff47105db32ddf05b">MAINTAIN_FREE_CLUSTER_COUNT</a>   0</td></tr> | |||
<tr class="separator:ac2865dac8fdbb4fff47105db32ddf05b"><td class="memSeparator" colspan="2"> </td></tr> | |||
<tr class="memitem:a838861a01379e94361148d22e62b1977"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a838861a01379e94361148d22e62b1977">SD_HAS_CUSTOM_SPI</a>   1</td></tr> | |||
<tr class="separator:a838861a01379e94361148d22e62b1977"><td class="memSeparator" colspan="2"> </td></tr> | |||
<tr class="memitem:a89b43e6b5c76008d9596494cf64e54fb"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a89b43e6b5c76008d9596494cf64e54fb">SD_SPI_CONFIGURATION</a>   0</td></tr> | |||
<tr class="separator:a89b43e6b5c76008d9596494cf64e54fb"><td class="memSeparator" colspan="2"> </td></tr> | |||
<tr class="memitem:a2536b194b3b007604a39e8526e108b52"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a2536b194b3b007604a39e8526e108b52">USE_LONG_FILE_NAMES</a>   1</td></tr> | |||
@@ -177,16 +181,16 @@ Variables</h2></td></tr> | |||
</div> | |||
</div> | |||
<a class="anchor" id="a5fa85e013e8661465ff4bc2395d77dd1"></a> | |||
<a class="anchor" id="a0c1ace70ac452b3af13a00950551b3df"></a> | |||
<div class="memitem"> | |||
<div class="memproto"> | |||
<table class="memname"> | |||
<tr> | |||
<td class="memname">#define ENABLE_SPI_TRANSACTION   0</td> | |||
<td class="memname">#define ENABLE_SPI_TRANSACTIONS   0</td> | |||
</tr> | |||
</table> | |||
</div><div class="memdoc"> | |||
<p>Set ENABLE_SPI_TRANSACTION nonzero to enable the SPI transaction feature of the standard Arduino SPI library. You must include SPI.h in your programs when ENABLE_SPI_TRANSACTION is nonzero. </p> | |||
<p>Set ENABLE_SPI_TRANSACTIONS nonzero to enable the SPI transaction feature of the standard Arduino SPI library. You must include SPI.h in your programs when ENABLE_SPI_TRANSACTIONS is nonzero. </p> | |||
</div> | |||
</div> | |||
@@ -200,7 +204,7 @@ Variables</h2></td></tr> | |||
</table> | |||
</div><div class="memdoc"> | |||
<p>Set ENABLE_SPI_YIELD nonzero to enable release of the SPI bus during SD card busy waits.</p> | |||
<p>This will allow interrupt routines to access the SPI bus if ENABLE_SPI_TRANSACTION is nonzero.</p> | |||
<p>This will allow interrupt routines to access the SPI bus if ENABLE_SPI_TRANSACTIONS is nonzero.</p> | |||
<p>Setting ENABLE_SPI_YIELD will introduce some extra overhead and will slightly slow transfer rates. A few older SD cards may fail when ENABLE_SPI_YIELD is nonzero. </p> | |||
</div> | |||
@@ -233,6 +237,32 @@ Variables</h2></td></tr> | |||
</div><div class="memdoc"> | |||
<p>Set FAT12_SUPPORT nonzero to enable use if FAT12 volumes. FAT12 has not been well tested and requires additional flash. </p> | |||
</div> | |||
</div> | |||
<a class="anchor" id="ac2865dac8fdbb4fff47105db32ddf05b"></a> | |||
<div class="memitem"> | |||
<div class="memproto"> | |||
<table class="memname"> | |||
<tr> | |||
<td class="memname">#define MAINTAIN_FREE_CLUSTER_COUNT   0</td> | |||
</tr> | |||
</table> | |||
</div><div class="memdoc"> | |||
<p>Set MAINTAIN_FREE_CLUSTER_COUNT nonzero to keep the count of free clusters updated. This will increase the speed of the freeClusterCount() call after the first call. Extra flash will be required. </p> | |||
</div> | |||
</div> | |||
<a class="anchor" id="a838861a01379e94361148d22e62b1977"></a> | |||
<div class="memitem"> | |||
<div class="memproto"> | |||
<table class="memname"> | |||
<tr> | |||
<td class="memname">#define SD_HAS_CUSTOM_SPI   1</td> | |||
</tr> | |||
</table> | |||
</div><div class="memdoc"> | |||
<p>Determine the default SPI configuration. </p> | |||
</div> | |||
</div> | |||
<a class="anchor" id="a89b43e6b5c76008d9596494cf64e54fb"></a> | |||
@@ -245,8 +275,8 @@ Variables</h2></td></tr> | |||
</table> | |||
</div><div class="memdoc"> | |||
<p>The symbol SD_SPI_CONFIGURATION defines SPI access to the SD card.</p> | |||
<p>IF SD_SPI_CONFIGUTATION is define to be zero, only the <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> class is define and <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> uses a fast custom SPI implementation.</p> | |||
<p>If SD_SPI_CONFIGURATION is define to be one, only the <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> class is define and <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> uses the standard Arduino SD.h library.</p> | |||
<p>IF SD_SPI_CONFIGUTATION is define to be zero, only the <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> class is define and <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> uses a fast custom SPI implementation if avaiable. If SD_HAS_CUSTOM_SPI is zero, the standard SPI library is used.</p> | |||
<p>If SD_SPI_CONFIGURATION is define to be one, only the <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> class is define and <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> uses the standard Arduino SPI.h library.</p> | |||
<p>If SD_SPI_CONFIGURATION is define to be two, only the <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> class is define and <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> uses software SPI on the pins defined below.</p> | |||
<p>If SD_SPI_CONFIGURATION is define to be three, the three classes, <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a>, <a class="el" href="class_sd_fat_lib_spi.html" title="SdFat class using the standard Arduino SPI library. ">SdFatLibSpi</a>, and <a class="el" href="class_sd_fat_soft_spi.html" title="SdFat class using software SPI. ">SdFatSoftSpi</a> are defined. <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> uses the fast custom SPI implementation. <a class="el" href="class_sd_fat_lib_spi.html" title="SdFat class using the standard Arduino SPI library. ">SdFatLibSpi</a> uses the standard Arduino SPI library. <a class="el" href="class_sd_fat_soft_spi.html" title="SdFat class using software SPI. ">SdFatSoftSpi</a> is a template class that uses Software SPI. The template parameters define the software SPI pins. See the ThreeCard example for simultaneous use of all three classes. </p> | |||
@@ -371,7 +401,7 @@ Variables</h2></td></tr> | |||
</div><!-- contents --> | |||
<!-- start footer part --> | |||
<hr class="footer"/><address class="footer"><small> | |||
Generated on Sun Feb 1 2015 10:21:39 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
Generated on Sun Jul 19 2015 10:15:53 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
<img class="footer" src="doxygen.png" alt="doxygen"/> | |||
</a> 1.8.8 | |||
</small></address> |
@@ -4,7 +4,7 @@ | |||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | |||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | |||
<meta name="generator" content="Doxygen 1.8.8"/> | |||
<title>SdFat: Arduino/libraries/SdFat/SdFatUtil.h File Reference</title> | |||
<title>SdFat: Arduino/libraries/SdFat/src/SdFatUtil.h File Reference</title> | |||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | |||
<script type="text/javascript" src="jquery.js"></script> | |||
<script type="text/javascript" src="dynsections.js"></script> | |||
@@ -80,7 +80,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<div id="nav-path" class="navpath"> | |||
<ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li> </ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_c18d6c86f7b0afecac5c3a8a9885031e.html">src</a></li> </ul> | |||
</div> | |||
</div><!-- top --> | |||
<div class="header"> | |||
@@ -98,9 +98,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
</div><div class="textblock"><div class="dynheader"> | |||
Include dependency graph for SdFatUtil.h:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_sd_fat_util_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2_sd_fat_util_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2_sd_fat_util_8h" id="_arduino_2libraries_2_sd_fat_2_sd_fat_util_8h"> | |||
<area shape="rect" id="node3" href="_sd_fat_8h.html" title="SdFat class. " alt="" coords="53,96,121,123"/> <area shape="rect" id="node5" href="_sd_spi_card_8h.html" title="SdSpiCard class for V2 SD/SDHC cards. " alt="" coords="40,171,134,197"/> <area shape="rect" id="node9" href="_sd_fat_config_8h.html" title="configuration definitions " alt="" coords="19,320,123,347"/> <area shape="rect" id="node15" href="_sd_spi_8h.html" title="SdSpi class for V2 SD/SDHC cards. " alt="" coords="183,245,250,272"/> <area shape="rect" id="node19" href="_soft_s_p_i_8h.html" title="Software SPI. " alt="" coords="198,320,310,347"/> <area shape="rect" id="node21" href="_digital_pin_8h.html" title="Fast Digital Pin functions. " alt="" coords="210,395,298,421"/> </map> | |||
<div class="center"><img src="_sd_fat_util_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_sd_fat_util_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_sd_fat_util_8h" id="_arduino_2libraries_2_sd_fat_2src_2_sd_fat_util_8h"> | |||
<area shape="rect" id="node3" href="_sd_fat_8h.html" title="SdFat class. " alt="" coords="53,96,121,123"/> <area shape="rect" id="node5" href="_sd_spi_card_8h.html" title="SdSpiCard class for V2 SD/SDHC cards. " alt="" coords="7,171,167,197"/> <area shape="rect" id="node9" href="_sd_fat_config_8h.html" title="configuration definitions " alt="" coords="25,320,129,347"/> <area shape="rect" id="node15" href="_sd_spi_8h.html" title="SdSpi class for V2 SD/SDHC cards. " alt="" coords="183,245,250,272"/> <area shape="rect" id="node21" href="_soft_s_p_i_8h.html" title="Software SPI. " alt="" coords="283,320,361,347"/> <area shape="rect" id="node23" href="_digital_pin_8h.html" title="Fast Digital Pin functions. " alt="" coords="262,395,350,421"/> </map> | |||
</div> | |||
</div><table class="memberdecls"> | |||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> | |||
@@ -163,7 +163,7 @@ Functions</h2></td></tr> | |||
</div><!-- contents --> | |||
<!-- start footer part --> | |||
<hr class="footer"/><address class="footer"><small> | |||
Generated on Sun Feb 1 2015 10:21:39 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
Generated on Sun Jul 19 2015 10:15:53 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
<img class="footer" src="doxygen.png" alt="doxygen"/> | |||
</a> 1.8.8 | |||
</small></address> |
@@ -4,7 +4,7 @@ | |||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | |||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | |||
<meta name="generator" content="Doxygen 1.8.8"/> | |||
<title>SdFat: Arduino/libraries/SdFat/SdSpi.h File Reference</title> | |||
<title>SdFat: Arduino/libraries/SdFat/src/SdSpiCard/SdSpi.h File Reference</title> | |||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | |||
<script type="text/javascript" src="jquery.js"></script> | |||
<script type="text/javascript" src="dynsections.js"></script> | |||
@@ -80,7 +80,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<div id="nav-path" class="navpath"> | |||
<ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li> </ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_c18d6c86f7b0afecac5c3a8a9885031e.html">src</a></li><li class="navelem"><a class="el" href="dir_c1572573431a6c581ab684c4a3cd60b9.html">SdSpiCard</a></li> </ul> | |||
</div> | |||
</div><!-- top --> | |||
<div class="header"> | |||
@@ -95,22 +95,22 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<p><a class="el" href="class_sd_spi.html" title="SPI class for access to SD and SDHC flash memory cards. ">SdSpi</a> class for V2 SD/SDHC cards. | |||
<a href="#details">More...</a></p> | |||
<div class="textblock"><code>#include <Arduino.h></code><br /> | |||
<code>#include "<a class="el" href="_sd_fat_config_8h.html">SdFatConfig.h</a>"</code><br /> | |||
<code>#include "<a class="el" href="_soft_s_p_i_8h.html">utility/SoftSPI.h</a>"</code><br /> | |||
<code>#include <SPI.h></code><br /> | |||
<code>#include "<a class="el" href="_sd_fat_config_8h.html">SdFatConfig.h</a>"</code><br /> | |||
<code>#include "<a class="el" href="_soft_s_p_i_8h.html">SoftSPI.h</a>"</code><br /> | |||
</div><div class="textblock"><div class="dynheader"> | |||
Include dependency graph for SdSpi.h:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_sd_spi_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2_sd_spi_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2_sd_spi_8h" id="_arduino_2libraries_2_sd_fat_2_sd_spi_8h"> | |||
<area shape="rect" id="node5" href="_sd_fat_config_8h.html" title="configuration definitions " alt="" coords="32,96,136,123"/> <area shape="rect" id="node9" href="_soft_s_p_i_8h.html" title="Software SPI. " alt="" coords="160,96,272,123"/> <area shape="rect" id="node11" href="_digital_pin_8h.html" title="Fast Digital Pin functions. " alt="" coords="144,171,232,197"/> </map> | |||
<div class="center"><img src="_sd_spi_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_sd_spi_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_sd_spi_8h" id="_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_sd_spi_8h"> | |||
<area shape="rect" id="node7" href="_sd_fat_config_8h.html" title="configuration definitions " alt="" coords="106,96,210,123"/> <area shape="rect" id="node11" href="_soft_s_p_i_8h.html" title="Software SPI. " alt="" coords="234,96,312,123"/> <area shape="rect" id="node13" href="_digital_pin_8h.html" title="Fast Digital Pin functions. " alt="" coords="222,171,310,197"/> </map> | |||
</div> | |||
</div><div class="textblock"><div class="dynheader"> | |||
This graph shows which files directly or indirectly include this file:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_sd_spi_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2_sd_spi_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2_sd_spi_8hdep" id="_arduino_2libraries_2_sd_fat_2_sd_spi_8hdep"> | |||
<area shape="rect" id="node3" href="_sd_spi_card_8h.html" title="SdSpiCard class for V2 SD/SDHC cards. " alt="" coords="5,97,160,138"/> <area shape="rect" id="node5" href="_sd_fat_8h.html" title="SdFat class. " alt="" coords="5,187,160,229"/> <area shape="rect" id="node7" href="_sd_fat_util_8h.html" title="Useful utility functions. " alt="" coords="5,278,160,319"/> </map> | |||
<div class="center"><img src="_sd_spi_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_sd_spi_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_sd_spi_8hdep" id="_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_sd_spi_8hdep"> | |||
<area shape="rect" id="node3" href="_sd_spi_card_8h.html" title="SdSpiCard class for V2 SD/SDHC cards. " alt="" coords="5,97,192,138"/> <area shape="rect" id="node5" href="_sd_fat_8h.html" title="SdFat class. " alt="" coords="21,187,176,229"/> <area shape="rect" id="node7" href="_sd_fat_util_8h.html" title="Useful utility functions. " alt="" coords="21,278,176,319"/> </map> | |||
</div> | |||
</div><table class="memberdecls"> | |||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> | |||
@@ -130,29 +130,29 @@ Classes</h2></td></tr> | |||
</table><table class="memberdecls"> | |||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> | |||
Typedefs</h2></td></tr> | |||
<tr class="memitem:ad2c24f6ae166193062e50d14c5342b95"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="class_sd_spi.html">SdSpi</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_spi_8h.html#ad2c24f6ae166193062e50d14c5342b95">SpiDefault_t</a></td></tr> | |||
<tr class="separator:ad2c24f6ae166193062e50d14c5342b95"><td class="memSeparator" colspan="2"> </td></tr> | |||
<tr class="memitem:a312d9e68dd648980324728cc06d3bf6a"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="class_sd_spi_lib.html">SdSpiLib</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_spi_8h.html#a312d9e68dd648980324728cc06d3bf6a">SpiDefault_t</a></td></tr> | |||
<tr class="separator:a312d9e68dd648980324728cc06d3bf6a"><td class="memSeparator" colspan="2"> </td></tr> | |||
</table> | |||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> | |||
<div class="textblock"><p><a class="el" href="class_sd_spi.html" title="SPI class for access to SD and SDHC flash memory cards. ">SdSpi</a> class for V2 SD/SDHC cards. </p> | |||
</div><h2 class="groupheader">Typedef Documentation</h2> | |||
<a class="anchor" id="ad2c24f6ae166193062e50d14c5342b95"></a> | |||
<a class="anchor" id="a312d9e68dd648980324728cc06d3bf6a"></a> | |||
<div class="memitem"> | |||
<div class="memproto"> | |||
<table class="memname"> | |||
<tr> | |||
<td class="memname">typedef <a class="el" href="class_sd_spi.html">SdSpi</a> <a class="el" href="_sd_spi_8h.html#ad2c24f6ae166193062e50d14c5342b95">SpiDefault_t</a></td> | |||
<td class="memname">typedef <a class="el" href="class_sd_spi_lib.html">SdSpiLib</a> <a class="el" href="_sd_spi_8h.html#a312d9e68dd648980324728cc06d3bf6a">SpiDefault_t</a></td> | |||
</tr> | |||
</table> | |||
</div><div class="memdoc"> | |||
<p>Default is custom fast SPI. </p> | |||
<p>Default is Arduino library SPI. </p> | |||
</div> | |||
</div> | |||
</div><!-- contents --> | |||
<!-- start footer part --> | |||
<hr class="footer"/><address class="footer"><small> | |||
Generated on Sun Feb 1 2015 10:21:39 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
Generated on Sun Jul 19 2015 10:15:53 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
<img class="footer" src="doxygen.png" alt="doxygen"/> | |||
</a> 1.8.8 | |||
</small></address> |
@@ -4,7 +4,7 @@ | |||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | |||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | |||
<meta name="generator" content="Doxygen 1.8.8"/> | |||
<title>SdFat: Arduino/libraries/SdFat/SdSpiCard.h File Reference</title> | |||
<title>SdFat: Arduino/libraries/SdFat/src/SdSpiCard/SdSpiCard.h File Reference</title> | |||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | |||
<script type="text/javascript" src="jquery.js"></script> | |||
<script type="text/javascript" src="dynsections.js"></script> | |||
@@ -80,7 +80,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<div id="nav-path" class="navpath"> | |||
<ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li> </ul> | |||
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_c18d6c86f7b0afecac5c3a8a9885031e.html">src</a></li><li class="navelem"><a class="el" href="dir_c1572573431a6c581ab684c4a3cd60b9.html">SdSpiCard</a></li> </ul> | |||
</div> | |||
</div><!-- top --> | |||
<div class="header"> | |||
@@ -94,22 +94,22 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | |||
<p><a class="el" href="class_sd_spi_card.html" title="Raw access to SD and SDHC flash memory cards via SPI protocol. ">SdSpiCard</a> class for V2 SD/SDHC cards. | |||
<a href="#details">More...</a></p> | |||
<div class="textblock"><code>#include <Arduino.h></code><br /> | |||
<code>#include <<a class="el" href="_sd_fat_config_8h.html">SdFatConfig.h</a>></code><br /> | |||
<code>#include <SdInfo.h></code><br /> | |||
<code>#include <<a class="el" href="_sd_spi_8h.html">SdSpi.h</a>></code><br /> | |||
<code>#include "<a class="el" href="_sd_fat_config_8h.html">SdFatConfig.h</a>"</code><br /> | |||
<code>#include "SdInfo.h"</code><br /> | |||
<code>#include "<a class="el" href="_sd_spi_8h.html">SdSpi.h</a>"</code><br /> | |||
</div><div class="textblock"><div class="dynheader"> | |||
Include dependency graph for SdSpiCard.h:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_sd_spi_card_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2_sd_spi_card_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2_sd_spi_card_8h" id="_arduino_2libraries_2_sd_fat_2_sd_spi_card_8h"> | |||
<area shape="rect" id="node5" href="_sd_fat_config_8h.html" title="configuration definitions " alt="" coords="18,171,122,197"/> <area shape="rect" id="node11" href="_sd_spi_8h.html" title="SdSpi class for V2 SD/SDHC cards. " alt="" coords="182,96,249,123"/> <area shape="rect" id="node15" href="_soft_s_p_i_8h.html" title="Software SPI. " alt="" coords="197,171,309,197"/> <area shape="rect" id="node17" href="_digital_pin_8h.html" title="Fast Digital Pin functions. " alt="" coords="209,245,297,272"/> </map> | |||
<div class="center"><img src="_sd_spi_card_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_sd_spi_card_8h" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_sd_spi_card_8h" id="_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_sd_spi_card_8h"> | |||
<area shape="rect" id="node5" href="_sd_fat_config_8h.html" title="configuration definitions " alt="" coords="36,171,140,197"/> <area shape="rect" id="node11" href="_sd_spi_8h.html" title="SdSpi class for V2 SD/SDHC cards. " alt="" coords="194,96,261,123"/> <area shape="rect" id="node17" href="_soft_s_p_i_8h.html" title="Software SPI. " alt="" coords="295,171,372,197"/> <area shape="rect" id="node19" href="_digital_pin_8h.html" title="Fast Digital Pin functions. " alt="" coords="273,245,361,272"/> </map> | |||
</div> | |||
</div><div class="textblock"><div class="dynheader"> | |||
This graph shows which files directly or indirectly include this file:</div> | |||
<div class="dyncontent"> | |||
<div class="center"><img src="_sd_spi_card_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2_sd_spi_card_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2_sd_spi_card_8hdep" id="_arduino_2libraries_2_sd_fat_2_sd_spi_card_8hdep"> | |||
<area shape="rect" id="node3" href="_sd_fat_8h.html" title="SdFat class. " alt="" coords="5,97,160,138"/> <area shape="rect" id="node5" href="_sd_fat_util_8h.html" title="Useful utility functions. " alt="" coords="5,187,160,229"/> </map> | |||
<div class="center"><img src="_sd_spi_card_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_sd_spi_card_8hdep" alt=""/></div> | |||
<map name="_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_sd_spi_card_8hdep" id="_arduino_2libraries_2_sd_fat_2src_2_sd_spi_card_2_sd_spi_card_8hdep"> | |||
<area shape="rect" id="node3" href="_sd_fat_8h.html" title="SdFat class. " alt="" coords="21,97,176,138"/> <area shape="rect" id="node5" href="_sd_fat_util_8h.html" title="Useful utility functions. " alt="" coords="21,187,176,229"/> </map> | |||
</div> | |||
</div><table class="memberdecls"> | |||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> | |||
@@ -126,7 +126,7 @@ Classes</h2></td></tr> | |||
</div></div><!-- contents --> | |||
<!-- start footer part --> | |||
<hr class="footer"/><address class="footer"><small> | |||
Generated on Sun Feb 1 2015 10:21:39 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
Generated on Sun Jul 19 2015 10:15:53 for SdFat by  <a href="http://www.doxygen.org/index.html"> | |||
<img class="footer" src="doxygen.png" alt="doxygen"/> | |||
</a> 1.8.8 | |||
</small></address> |