diff --git a/src/Module.cpp b/src/Module.cpp index 5c5af1b8..bfd7f24b 100644 --- a/src/Module.cpp +++ b/src/Module.cpp @@ -10,13 +10,14 @@ Module::Module(int rx, int tx) { ModuleSerial = new SoftwareSerial(_rx, _tx); } -Module::Module(int cs, int int0, int int1, SPIClass& spi) { +Module::Module(int cs, int int0, int int1, SPIClass& spi, SPISettings spiSettings) { _cs = cs; _rx = -1; _tx = -1; _int0 = int0; _int1 = int1; _spi = &spi; + _spiSettings = spiSettings; } Module::Module(int cs, int int0, int int1, int rx, int tx, SPIClass& spi) { @@ -188,7 +189,8 @@ void Module::SPIwriteRegister(uint8_t reg, uint8_t data) { void Module::SPItransfer(uint8_t cmd, uint8_t reg, uint8_t* dataOut, uint8_t* dataIn, uint8_t numBytes) { // start SPI transaction - _spi->beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0)); + //_spi->beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0)); + _spi->beginTransaction(_spiSettings); // pull CS low digitalWrite(_cs, LOW); diff --git a/src/Module.h b/src/Module.h index cd79c94b..28f92aba 100644 --- a/src/Module.h +++ b/src/Module.h @@ -10,7 +10,7 @@ class Module { public: Module(int tx, int rx); - Module(int cs, int int0, int int1, SPIClass& spi = SPI); + Module(int cs, int int0, int int1, SPIClass& spi = SPI, SPISettings spiSettings = SPISettings(2000000, MSBFIRST, SPI_MODE0)); Module(int cs, int int0, int int1, int rx, int tx, SPIClass& spi = SPI); SoftwareSerial* ModuleSerial; @@ -46,6 +46,7 @@ class Module { int getRx() const { return(_rx); } int getTx() const { return(_tx); } SPIClass* getSpi() const { return(_spi); } + SPISettings getSpiSettings() const { return(_spiSettings); } private: int _cs; @@ -55,6 +56,7 @@ class Module { int _int1; SPIClass* _spi; + SPISettings _spiSettings; uint32_t _ATtimeout = 15000; };