1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-01-18 07:52:14 +01:00

SPI library compatibility fix

This commit is contained in:
Cristian Maglie 2012-06-09 15:02:51 +02:00
parent 3b0d08af6b
commit 301585f1fc
4 changed files with 14 additions and 6 deletions

View File

@ -19,6 +19,14 @@ SPIClass::SPIClass(Spi *_spi, uint32_t _id, void(*_initCb)(void)) :
SPI_Enable(spi); SPI_Enable(spi);
} }
void SPIClass::begin() {
// NPCS control is left to the user
// Default speed set to 500Khz
setClockDivider(BOARD_SPI_DEFAULT_SS, 168);
setDataMode(BOARD_SPI_DEFAULT_SS, SPI_MODE0);
}
void SPIClass::begin(uint8_t _pin) { void SPIClass::begin(uint8_t _pin) {
uint32_t spiPin = BOARD_PIN_TO_SPI_PIN(_pin); uint32_t spiPin = BOARD_PIN_TO_SPI_PIN(_pin);
PIO_Configure( PIO_Configure(

View File

@ -28,7 +28,7 @@ class SPIClass {
public: public:
SPIClass(Spi *_spi, uint32_t _id, void(*_initCb)(void)); SPIClass(Spi *_spi, uint32_t _id, void(*_initCb)(void));
//byte transfer(uint8_t _data, SPITransferMode _mode = SPI_LAST) { transfer(BOARD_PIN_SS_DEFAULT, _data, _mode); } byte transfer(uint8_t _data, SPITransferMode _mode = SPI_LAST) { return transfer(BOARD_SPI_DEFAULT_SS, _data, _mode); }
byte transfer(byte _channel, uint8_t _data, SPITransferMode _mode = SPI_LAST); byte transfer(byte _channel, uint8_t _data, SPITransferMode _mode = SPI_LAST);
// SPI Configuration methods // SPI Configuration methods
@ -37,7 +37,7 @@ class SPIClass {
void detachInterrupt(void); void detachInterrupt(void);
void begin(uint8_t _channel); void begin(uint8_t _channel);
//void begin(void) { begin(BOARD_PIN_SS_DEFAULT); }; void begin(void);
void end(void); void end(void);
// These methods sets a parameter on a single pin // These methods sets a parameter on a single pin
@ -47,8 +47,8 @@ class SPIClass {
// These methods sets the same parameters but on default pin PIN_SPI_SS_DEFAULT // These methods sets the same parameters but on default pin PIN_SPI_SS_DEFAULT
//void setBitOrder(uint8_t _order) { setBitOrder(PIN_SPI_SS_DEFAULT, _order); }; //void setBitOrder(uint8_t _order) { setBitOrder(PIN_SPI_SS_DEFAULT, _order); };
//void setDataMode(uint8_t _mode) { setDataMode(BOARD_PIN_SS_DEFAULT, _mode); }; void setDataMode(uint8_t _mode) { setDataMode(BOARD_SPI_DEFAULT_SS, _mode); };
//void setClockDivider(uint8_t _div) { setClockDivider(BOARD_PIN_SS_DEFAULT, _div); }; void setClockDivider(uint8_t _div) { setClockDivider(BOARD_SPI_DEFAULT_SS, _div); };
private: private:
Spi *spi; Spi *spi;

View File

@ -102,7 +102,7 @@
* SO | PA25 * SO | PA25
* SI | PA26 * SI | PA26
* SCK | PA27 * SCK | PA27
* #CS SS3 | PB23 * #CS NPCS3 | PB23
* *
* *
* USB pin | PORT * USB pin | PORT

View File

@ -96,7 +96,7 @@ extern "C"{
#define BOARD_SPI_SS1 (4u) #define BOARD_SPI_SS1 (4u)
#define BOARD_SPI_SS2 (52u) #define BOARD_SPI_SS2 (52u)
#define BOARD_SPI_SS3 PIN_SPI_SS3 #define BOARD_SPI_SS3 PIN_SPI_SS3
#define BOARD_PIN_SS_DEFAULT BOARD_SPI_SS2 #define BOARD_SPI_DEFAULT_SS BOARD_SPI_SS2
#define BOARD_PIN_TO_SPI_PIN(x) \ #define BOARD_PIN_TO_SPI_PIN(x) \
(x==BOARD_SPI_SS0 ? PIN_SPI_SS0 : \ (x==BOARD_SPI_SS0 ? PIN_SPI_SS0 : \