Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: 4DGL-uLCD-SE FATFileSystem
Fork of SDFileSystem by
Diff: SDFileSystem.cpp
- Revision:
- 16:c2c1f0b16380
- Parent:
- 15:c9e938f6934f
- Child:
- 17:a47f74caa04e
--- a/SDFileSystem.cpp Mon Oct 27 17:02:05 2014 +0000
+++ b/SDFileSystem.cpp Mon Jan 05 18:43:29 2015 +0000
@@ -48,16 +48,18 @@
m_Cd.mode(PullUp);
m_CdAssert = 0;
m_Cd.rise(this, &SDFileSystem::onCardRemoval);
- } else {
+ } else if (cdtype == SWITCH_NEG_NC) {
m_Cd.mode(PullUp);
m_CdAssert = 1;
m_Cd.fall(this, &SDFileSystem::onCardRemoval);
+ } else {
+ m_CdAssert = -1;
}
}
SDFileSystem::CardType SDFileSystem::card_type()
{
- //Check the card socket
+ //Check if there's a card in the socket
checkSocket();
//If a card is present but not initialized, initialize it
@@ -76,7 +78,7 @@
void SDFileSystem::crc(bool enabled)
{
- //Check the card socket
+ //Check if there's a card in the socket
checkSocket();
//Just update the member variable if the card isn't initialized
@@ -397,14 +399,14 @@
void SDFileSystem::onCardRemoval()
{
- //Check the card socket
+ //Check if there's a card in the socket
checkSocket();
}
inline void SDFileSystem::checkSocket()
{
- //Check if a card is in the socket
- if (m_Cd == m_CdAssert) {
+ //Use the card detect switch (if available) to determine if the socket is occupied
+ if (m_CdAssert == -1 || m_Cd == m_CdAssert) {
//The socket is occupied, clear the STA_NODISK flag
m_Status &= ~STA_NODISK;
} else {
