|
15 | 15 | #include "Adafruit_SPIDevice.h" |
16 | 16 |
|
17 | 17 | #ifdef RTDUINO_USING_SPI |
18 | | -#if !defined(SPI_INTERFACES_COUNT) || \ |
19 | | - (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) |
20 | 18 |
|
21 | 19 | //#define DEBUG_SERIAL Serial |
22 | 20 |
|
@@ -64,21 +62,6 @@ Adafruit_SPIDevice::Adafruit_SPIDevice(int8_t cspin, int8_t sckpin, |
64 | 62 | _miso = misopin; |
65 | 63 | _mosi = mosipin; |
66 | 64 |
|
67 | | -#ifdef BUSIO_USE_FAST_PINIO |
68 | | - csPort = (BusIO_PortReg *)portOutputRegister(digitalPinToPort(cspin)); |
69 | | - csPinMask = digitalPinToBitMask(cspin); |
70 | | - if (mosipin != -1) { |
71 | | - mosiPort = (BusIO_PortReg *)portOutputRegister(digitalPinToPort(mosipin)); |
72 | | - mosiPinMask = digitalPinToBitMask(mosipin); |
73 | | - } |
74 | | - if (misopin != -1) { |
75 | | - misoPort = (BusIO_PortReg *)portInputRegister(digitalPinToPort(misopin)); |
76 | | - misoPinMask = digitalPinToBitMask(misopin); |
77 | | - } |
78 | | - clkPort = (BusIO_PortReg *)portOutputRegister(digitalPinToPort(sckpin)); |
79 | | - clkPinMask = digitalPinToBitMask(sckpin); |
80 | | -#endif |
81 | | - |
82 | 65 | _freq = freq; |
83 | 66 | _dataOrder = dataOrder; |
84 | 67 | _dataMode = dataMode; |
@@ -186,77 +169,39 @@ void Adafruit_SPIDevice::transfer(uint8_t *buffer, size_t len) { |
186 | 169 | if (_dataMode == SPI_MODE0 || _dataMode == SPI_MODE2) { |
187 | 170 | towrite = send & b; |
188 | 171 | if ((_mosi != -1) && (lastmosi != towrite)) { |
189 | | -#ifdef BUSIO_USE_FAST_PINIO |
190 | | - if (towrite) |
191 | | - *mosiPort |= mosiPinMask; |
192 | | - else |
193 | | - *mosiPort &= ~mosiPinMask; |
194 | | -#else |
195 | 172 | digitalWrite(_mosi, towrite); |
196 | | -#endif |
197 | 173 | lastmosi = towrite; |
198 | 174 | } |
199 | 175 |
|
200 | | -#ifdef BUSIO_USE_FAST_PINIO |
201 | | - *clkPort |= clkPinMask; // Clock high |
202 | | -#else |
203 | 176 | digitalWrite(_sck, HIGH); |
204 | | -#endif |
205 | 177 |
|
206 | 178 | if (bitdelay_us) { |
207 | 179 | delayMicroseconds(bitdelay_us); |
208 | 180 | } |
209 | 181 |
|
210 | 182 | if (_miso != -1) { |
211 | | -#ifdef BUSIO_USE_FAST_PINIO |
212 | | - if (*misoPort & misoPinMask) { |
213 | | -#else |
214 | 183 | if (digitalRead(_miso)) { |
215 | | -#endif |
216 | 184 | reply |= b; |
217 | 185 | } |
218 | 186 | } |
219 | 187 |
|
220 | | -#ifdef BUSIO_USE_FAST_PINIO |
221 | | - *clkPort &= ~clkPinMask; // Clock low |
222 | | -#else |
223 | 188 | digitalWrite(_sck, LOW); |
224 | | -#endif |
225 | 189 | } else { // if (_dataMode == SPI_MODE1 || _dataMode == SPI_MODE3) |
226 | 190 |
|
227 | | -#ifdef BUSIO_USE_FAST_PINIO |
228 | | - *clkPort |= clkPinMask; // Clock high |
229 | | -#else |
230 | 191 | digitalWrite(_sck, HIGH); |
231 | | -#endif |
232 | 192 |
|
233 | 193 | if (bitdelay_us) { |
234 | 194 | delayMicroseconds(bitdelay_us); |
235 | 195 | } |
236 | 196 |
|
237 | 197 | if (_mosi != -1) { |
238 | | -#ifdef BUSIO_USE_FAST_PINIO |
239 | | - if (send & b) |
240 | | - *mosiPort |= mosiPinMask; |
241 | | - else |
242 | | - *mosiPort &= ~mosiPinMask; |
243 | | -#else |
244 | 198 | digitalWrite(_mosi, send & b); |
245 | | -#endif |
246 | 199 | } |
247 | 200 |
|
248 | | -#ifdef BUSIO_USE_FAST_PINIO |
249 | | - *clkPort &= ~clkPinMask; // Clock low |
250 | | -#else |
251 | 201 | digitalWrite(_sck, LOW); |
252 | | -#endif |
253 | 202 |
|
254 | 203 | if (_miso != -1) { |
255 | | -#ifdef BUSIO_USE_FAST_PINIO |
256 | | - if (*misoPort & misoPinMask) { |
257 | | -#else |
258 | 204 | if (digitalRead(_miso)) { |
259 | | -#endif |
260 | 205 | reply |= b; |
261 | 206 | } |
262 | 207 | } |
@@ -508,5 +453,4 @@ bool Adafruit_SPIDevice::write_and_read(uint8_t *buffer, size_t len) { |
508 | 453 | return true; |
509 | 454 | } |
510 | 455 |
|
511 | | -#endif // SPI exists |
512 | 456 | #endif /* RTDUINO_USING_SPI */ |
0 commit comments