This is a previous version
Fork of SDFileSystem by
Diff: SDFileSystem.cpp
- Revision:
- 1:25f4ba436b81
- Parent:
- 0:2a6d8a096edc
- Child:
- 2:eec1db773e7d
--- a/SDFileSystem.cpp Tue Jul 29 20:12:23 2014 +0000 +++ b/SDFileSystem.cpp Wed Jul 30 15:36:56 2014 +0000 @@ -19,7 +19,7 @@ #include "CRC7.h" #include "CRC16.h" -SDFileSystem::SDFileSystem(PinName mosi, PinName miso, PinName sclk, PinName cs, PinName cd, const char* name, int hz) : FATFileSystem(name), m_SPI(mosi, miso, sclk), m_CS(cs, 1), m_CD(cd) +SDFileSystem::SDFileSystem(PinName mosi, PinName miso, PinName sclk, PinName cs, PinName cd, const char* name, SwitchType cdtype, int hz) : FATFileSystem(name), m_SPI(mosi, miso, sclk), m_CS(cs, 1), m_CD(cd), m_CD_ASSERT((int)cdtype) { //Initialize the member variables m_SpiFreq = hz; @@ -31,7 +31,10 @@ //Configure the card detect pin m_CD.mode(PullUp); - m_CD.fall(this, &SDFileSystem::checkSocket); + if (cdtype == SWITCH_NO) + m_CD.rise(this, &SDFileSystem::checkSocket); + else + m_CD.fall(this, &SDFileSystem::checkSocket); } SDFileSystem::CardType SDFileSystem::card_type() @@ -347,7 +350,7 @@ void SDFileSystem::checkSocket() { //Check if a card is in the socket - if (m_CD) { + if (m_CD == m_CD_ASSERT) { //The socket is occupied, clear the STA_NODISK flag m_Status &= ~STA_NODISK; } else {