Fixed issues in SPI for setDataMode - Thanks to Alexey (@HiddenPilot)

This commit is contained in:
Roger Clark 2015-01-06 07:35:03 +11:00
parent 94864c98a7
commit c57ae831dd
2 changed files with 10 additions and 6 deletions

View File

@ -169,7 +169,7 @@ void SPIClass::setBitOrder(uint8_t bitOrder)
_settings.bitOrder = bitOrder; _settings.bitOrder = bitOrder;
this->begin(); this->begin();
} }
void SPIClass::setdataMode(uint8_t dataMode) void SPIClass::setDataMode(uint8_t dataMode)
{ {
/* Notes. As far as I can tell, the AVR numbers for dataMode appear to match the numbers required by the STM32 /* Notes. As far as I can tell, the AVR numbers for dataMode appear to match the numbers required by the STM32

View File

@ -75,10 +75,14 @@ typedef enum SPIFrequency {
#define SPI_MODE0 0x00 #define SPI_MODE0 0x00
#define SPI_MODE1 0x04 #define SPI_MODE1 0x02
#define SPI_MODE2 0x08 #define SPI_MODE2 0x02
#define SPI_MODE3 0x0C #define SPI_MODE3 0x03
/*
* Roger Clark. 20150106
* Commented out redundant AVR defined
*
#define SPI_MODE_MASK 0x0C // CPOL = bit 3, CPHA = bit 2 on SPCR #define SPI_MODE_MASK 0x0C // CPOL = bit 3, CPHA = bit 2 on SPCR
#define SPI_CLOCK_MASK 0x03 // SPR1 = bit 1, SPR0 = bit 0 on SPCR #define SPI_CLOCK_MASK 0x03 // SPR1 = bit 1, SPR0 = bit 0 on SPCR
#define SPI_2XCLOCK_MASK 0x01 // SPI2X = bit 0 on SPSR #define SPI_2XCLOCK_MASK 0x01 // SPI2X = bit 0 on SPSR
@ -91,7 +95,7 @@ typedef enum SPIFrequency {
#elif defined(GIMSK) #elif defined(GIMSK)
#define SPI_AVR_EIMSK GIMSK #define SPI_AVR_EIMSK GIMSK
#endif #endif
*/
#ifndef STM32_LSBFIRST #ifndef STM32_LSBFIRST
#define STM32_LSBFIRST 0 #define STM32_LSBFIRST 0
@ -189,7 +193,7 @@ public:
void setClockDivider(uint32_t clockDivider); void setClockDivider(uint32_t clockDivider);
void setBitOrder(uint8_t bitOrder); void setBitOrder(uint8_t bitOrder);
void setdataMode(uint8_t dataMode); void setDataMode(uint8_t dataMode);
// SPI Configuration methods // SPI Configuration methods
void attachInterrupt(void); void attachInterrupt(void);