Fix SPI transaction mismatch errors

This commit is contained in:
PaulStoffregen 2014-11-20 18:54:04 -08:00
parent 257238c050
commit c0bc2d22f6
1 changed files with 10 additions and 2 deletions

View File

@ -157,16 +157,24 @@ uint32_t Sd2Card::cardSize(void) {
}
}
//------------------------------------------------------------------------------
static uint8_t chip_select_asserted = 0;
void Sd2Card::chipSelectHigh(void) {
digitalWrite(chipSelectPin_, HIGH);
#ifdef USE_SPI_LIB
SPI.endTransaction();
if (chip_select_asserted) {
chip_select_asserted = 0;
SPI.endTransaction();
}
#endif
}
//------------------------------------------------------------------------------
void Sd2Card::chipSelectLow(void) {
#ifdef USE_SPI_LIB
SPI.beginTransaction(settings);
if (!chip_select_asserted) {
chip_select_asserted = 1;
SPI.beginTransaction(settings);
}
#endif
digitalWrite(chipSelectPin_, LOW);
}