@@ -57,7 +57,7 @@ void SPIClass::begin(uint8_t _pin)
57
57
return ;
58
58
59
59
idx = pinIdx (_pin, ADD_NEW_PIN);
60
- if (idx = = NB_SPI_SETTINGS)
60
+ if (idx > = NB_SPI_SETTINGS)
61
61
return ;
62
62
63
63
if ((_pin != CS_PIN_CONTROLLED_BY_USER) && (_spi.pin_ssel == NC)) {
@@ -93,7 +93,7 @@ void SPIClass::beginTransaction(uint8_t _pin, SPISettings settings)
93
93
return ;
94
94
95
95
idx = pinIdx (_pin, ADD_NEW_PIN);
96
- if (idx = = NB_SPI_SETTINGS) {
96
+ if (idx > = NB_SPI_SETTINGS) {
97
97
return ;
98
98
}
99
99
@@ -139,7 +139,7 @@ void SPIClass::setBitOrder(uint8_t _pin, BitOrder _bitOrder)
139
139
return ;
140
140
141
141
uint8_t idx = pinIdx (_pin, GET_IDX);
142
- if (idx = = NB_SPI_SETTINGS) {
142
+ if (idx > = NB_SPI_SETTINGS) {
143
143
return ;
144
144
}
145
145
@@ -162,7 +162,7 @@ void SPIClass::setDataMode(uint8_t _pin, uint8_t _mode)
162
162
return ;
163
163
164
164
uint8_t idx = pinIdx (_pin, GET_IDX);
165
- if (idx = = NB_SPI_SETTINGS) {
165
+ if (idx > = NB_SPI_SETTINGS) {
166
166
return ;
167
167
}
168
168
@@ -191,7 +191,7 @@ void SPIClass::setClockDivider(uint8_t _pin, uint8_t _divider)
191
191
return ;
192
192
193
193
uint8_t idx = pinIdx (_pin, GET_IDX);
194
- if (idx = = NB_SPI_SETTINGS) {
194
+ if (idx > = NB_SPI_SETTINGS) {
195
195
return ;
196
196
}
197
197
@@ -234,7 +234,7 @@ byte SPIClass::transfer(uint8_t _pin, uint8_t data, SPITransferMode _mode)
234
234
235
235
if (_pin != _CSpin) {
236
236
uint8_t idx = pinIdx (_pin, GET_IDX);
237
- if (idx = = NB_SPI_SETTINGS) {
237
+ if (idx > = NB_SPI_SETTINGS) {
238
238
return rx_buffer;
239
239
}
240
240
spi_init (&_spi, spiSettings[idx].clk ,
@@ -262,22 +262,23 @@ uint16_t SPIClass::transfer16(uint8_t _pin, uint16_t data, SPITransferMode _mode
262
262
if (_pin > NUM_DIGITAL_PINS)
263
263
return rx_buffer;
264
264
265
- if (spiSettings[ _pin]. msb ) {
266
- tmp = ((data & 0xff00 ) >> 8 ) | ((data & 0xff ) << 8 );
267
- data = tmp ;
265
+ uint8_t idx = pinIdx ( _pin, GET_IDX);
266
+ if (idx >= NB_SPI_SETTINGS) {
267
+ return rx_buffer ;
268
268
}
269
269
270
270
if (_pin != _CSpin) {
271
- uint8_t idx = pinIdx (_pin, GET_IDX);
272
- if (idx == NB_SPI_SETTINGS) {
273
- return rx_buffer;
274
- }
275
271
spi_init (&_spi, spiSettings[idx].clk ,
276
272
spiSettings[idx].dMode ,
277
273
spiSettings[idx].msb );
278
274
_CSpin = _pin;
279
275
}
280
276
277
+ if (spiSettings[idx].msb ) {
278
+ tmp = ((data & 0xff00 ) >> 8 ) | ((data & 0xff ) << 8 );
279
+ data = tmp;
280
+ }
281
+
281
282
if ((_pin != CS_PIN_CONTROLLED_BY_USER) && (_spi.pin_ssel == NC))
282
283
digitalWrite (_pin, LOW);
283
284
@@ -286,7 +287,7 @@ uint16_t SPIClass::transfer16(uint8_t _pin, uint16_t data, SPITransferMode _mode
286
287
if ((_pin != CS_PIN_CONTROLLED_BY_USER) && (_mode == SPI_LAST) && (_spi.pin_ssel == NC))
287
288
digitalWrite (_pin, HIGH);
288
289
289
- if (spiSettings[_pin ].msb ) {
290
+ if (spiSettings[idx ].msb ) {
290
291
tmp = ((rx_buffer & 0xff00 ) >> 8 ) | ((rx_buffer & 0xff ) << 8 );
291
292
rx_buffer = tmp;
292
293
}
@@ -301,7 +302,7 @@ void SPIClass::transfer(uint8_t _pin, void *_buf, size_t _count, SPITransferMode
301
302
302
303
if (_pin != _CSpin) {
303
304
uint8_t idx = pinIdx (_pin, GET_IDX);
304
- if (idx = = NB_SPI_SETTINGS) {
305
+ if (idx > = NB_SPI_SETTINGS) {
305
306
return ;
306
307
}
307
308
spi_init (&_spi, spiSettings[idx].clk ,
@@ -326,7 +327,7 @@ void SPIClass::transfer(byte _pin, void *_bufout, void *_bufin, size_t _count, S
326
327
327
328
if (_pin != _CSpin) {
328
329
uint8_t idx = pinIdx (_pin, GET_IDX);
329
- if (idx = = NB_SPI_SETTINGS) {
330
+ if (idx > = NB_SPI_SETTINGS) {
330
331
return ;
331
332
}
332
333
spi_init (&_spi, spiSettings[idx].clk ,
0 commit comments