From 09f09b923ced1b76c23952962e3e153c4e5af159 Mon Sep 17 00:00:00 2001 From: Felix Rusu Date: Wed, 4 Apr 2018 10:36:23 -0400 Subject: [PATCH] protect AVR SPCR & SPSR --- SPIFlash.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/SPIFlash.cpp b/SPIFlash.cpp index fa6ffd4..c6c2118 100644 --- a/SPIFlash.cpp +++ b/SPIFlash.cpp @@ -56,8 +56,10 @@ void SPIFlash::select() { #ifndef SPI_HAS_TRANSACTION noInterrupts(); #endif +#if defined (SPCR) && defined (SPSR) _SPCR = SPCR; _SPSR = SPSR; +#endif #ifdef SPI_HAS_TRANSACTION SPI.beginTransaction(_settings); @@ -80,15 +82,19 @@ void SPIFlash::unselect() { #else interrupts(); #endif +#if defined (SPCR) && defined (SPSR) SPCR = _SPCR; SPSR = _SPSR; +#endif } /// setup SPI, read device ID etc... boolean SPIFlash::initialize() { +#if defined (SPCR) && defined (SPSR) _SPCR = SPCR; _SPSR = SPSR; +#endif pinMode(_slaveSelectPin, OUTPUT); #ifdef SPI_HAS_TRANSACTION _settings = SPISettings(4000000, MSBFIRST, SPI_MODE0);