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.
Dependents: GloboMetereologico
Fork of SDFileSystem by
Diff: SDFileSystem.cpp
- Revision:
- 22:3fa5eaf48e81
- Parent:
- 21:d10a519c0910
- Child:
- 23:6bb3c1987511
diff -r d10a519c0910 -r 3fa5eaf48e81 SDFileSystem.cpp
--- a/SDFileSystem.cpp Fri Dec 11 16:30:36 2015 +0000
+++ b/SDFileSystem.cpp Wed Feb 24 17:46:31 2016 +0000
@@ -1,5 +1,5 @@
/* SD/MMC File System Library
- * Copyright (c) 2015 Neil Thiessen
+ * Copyright (c) 2016 Neil Thiessen
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,7 +19,12 @@
#include "pinmap.h"
#include "SDCRC.h"
-SDFileSystem::SDFileSystem(PinName mosi, PinName miso, PinName sclk, PinName cs, const char* name, PinName cd, SwitchType cdtype, int hz) : FATFileSystem(name), m_Spi(mosi, miso, sclk), m_Cs(cs, 1), m_Cd(cd), m_FREQ(hz)
+SDFileSystem::SDFileSystem(PinName mosi, PinName miso, PinName sclk, PinName cs, const char* name, PinName cd, SwitchType cdtype, int hz)
+ : FATFileSystem(name),
+ m_Spi(mosi, miso, sclk),
+ m_Cs(cs, 1),
+ m_Cd(cd),
+ m_FREQ(hz)
{
//Initialize the member variables
m_CardType = CARD_NONE;
@@ -194,13 +199,13 @@
return m_Status;
}
- //Send ACMD41(0x40100000) repeatedly for up to 1 second to initialize the card
- m_Timer.start();
- do {
+ //Try to initialize the card using ACMD41(0x00100000)
+ for (int i = 0; i < 1000; i++) {
token = commandTransaction(ACMD41, 0x40100000);
- } while (token == 0x01 && m_Timer.read_ms() < 1000);
- m_Timer.stop();
- m_Timer.reset();
+ if (token != 0x01) {
+ break;
+ }
+ }
//Check if the card initialized
if (token != 0x00) {
@@ -236,13 +241,13 @@
return m_Status;
}
- //Try to initialize the card using ACMD41(0x00100000) for 1 second
- m_Timer.start();
- do {
- token = commandTransaction(ACMD41, 0x00100000);
- } while (token == 0x01 && m_Timer.read_ms() < 1000);
- m_Timer.stop();
- m_Timer.reset();
+ //Try to initialize the card using ACMD41(0x00100000)
+ for (int i = 0; i < 1000; i++) {
+ token = commandTransaction(ACMD41, 0x40100000);
+ if (token != 0x01) {
+ break;
+ }
+ }
//Check if the card initialized
if (token == 0x00) {
@@ -255,13 +260,13 @@
else
m_Spi.frequency(m_FREQ);
} else {
- //Try to initialize the card using CMD1(0x00100000) for 1 second
- m_Timer.start();
- do {
+ //Try to initialize the card using CMD1(0x00100000)
+ for (int i = 0; i < 1000; i++) {
token = commandTransaction(CMD1, 0x00100000);
- } while (token == 0x01 && m_Timer.read_ms() < 1000);
- m_Timer.stop();
- m_Timer.reset();
+ if (token != 0x01) {
+ break;
+ }
+ }
//Check if the card initialized
if (token == 0x00) {
