|
@@ -240,7 +240,7 @@ bool Sd2Card::init(uint8_t sckRateID, pin_t chipSelectPin) {
|
240
|
240
|
errorCode_ = type_ = 0;
|
241
|
241
|
chipSelectPin_ = chipSelectPin;
|
242
|
242
|
// 16-bit init start time allows over a minute
|
243
|
|
- uint16_t t0 = (uint16_t)millis();
|
|
243
|
+ const millis_t init_timeout = millis() + SD_INIT_TIMEOUT;
|
244
|
244
|
uint32_t arg;
|
245
|
245
|
|
246
|
246
|
// If init takes more than 4s it could trigger
|
|
@@ -268,7 +268,7 @@ bool Sd2Card::init(uint8_t sckRateID, pin_t chipSelectPin) {
|
268
|
268
|
|
269
|
269
|
// Command to go idle in SPI mode
|
270
|
270
|
while ((status_ = cardCommand(CMD0, 0)) != R1_IDLE_STATE) {
|
271
|
|
- if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) {
|
|
271
|
+ if (ELAPSED(millis(), init_timeout)) {
|
272
|
272
|
error(SD_CARD_ERROR_CMD0);
|
273
|
273
|
goto FAIL;
|
274
|
274
|
}
|
|
@@ -297,7 +297,7 @@ bool Sd2Card::init(uint8_t sckRateID, pin_t chipSelectPin) {
|
297
|
297
|
break;
|
298
|
298
|
}
|
299
|
299
|
|
300
|
|
- if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) {
|
|
300
|
+ if (ELAPSED(millis(), init_timeout)) {
|
301
|
301
|
error(SD_CARD_ERROR_CMD8);
|
302
|
302
|
goto FAIL;
|
303
|
303
|
}
|
|
@@ -312,7 +312,7 @@ bool Sd2Card::init(uint8_t sckRateID, pin_t chipSelectPin) {
|
312
|
312
|
arg = type() == SD_CARD_TYPE_SD2 ? 0x40000000 : 0;
|
313
|
313
|
while ((status_ = cardAcmd(ACMD41, arg)) != R1_READY_STATE) {
|
314
|
314
|
// check for timeout
|
315
|
|
- if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) {
|
|
315
|
+ if (ELAPSED(millis(), init_timeout)) {
|
316
|
316
|
error(SD_CARD_ERROR_ACMD41);
|
317
|
317
|
goto FAIL;
|
318
|
318
|
}
|
|
@@ -449,9 +449,9 @@ bool Sd2Card::readData(uint8_t* dst) {
|
449
|
449
|
|
450
|
450
|
bool Sd2Card::readData(uint8_t* dst, uint16_t count) {
|
451
|
451
|
// wait for start block token
|
452
|
|
- uint16_t t0 = millis();
|
|
452
|
+ const millis_t read_timeout = millis() + SD_READ_TIMEOUT;
|
453
|
453
|
while ((status_ = spiRec()) == 0xFF) {
|
454
|
|
- if (((uint16_t)millis() - t0) > SD_READ_TIMEOUT) {
|
|
454
|
+ if (ELAPSED(millis(), read_timeout)) {
|
455
|
455
|
error(SD_CARD_ERROR_READ_TIMEOUT);
|
456
|
456
|
goto FAIL;
|
457
|
457
|
}
|
|
@@ -553,10 +553,10 @@ bool Sd2Card::setSckRate(uint8_t sckRateID) {
|
553
|
553
|
}
|
554
|
554
|
|
555
|
555
|
// wait for card to go not busy
|
556
|
|
-bool Sd2Card::waitNotBusy(uint16_t timeoutMillis) {
|
557
|
|
- uint16_t t0 = millis();
|
|
556
|
+bool Sd2Card::waitNotBusy(const millis_t timeout_ms) {
|
|
557
|
+ const millis_t wait_timeout = millis() + timeout_ms;
|
558
|
558
|
while (spiRec() != 0xFF)
|
559
|
|
- if (((uint16_t)millis() - t0) >= timeoutMillis) return false;
|
|
559
|
+ if (ELAPSED(millis(), wait_timeout)) return false;
|
560
|
560
|
|
561
|
561
|
return true;
|
562
|
562
|
}
|