mirror of
https://github.com/RobTillaart/Arduino.git
synced 2024-10-03 18:09:02 -04:00
.. | ||
.github | ||
examples | ||
test | ||
.arduino-ci.yml | ||
CHANGELOG.md | ||
FastShiftInOut.cpp | ||
FastShiftInOut.h | ||
keywords.txt | ||
library.json | ||
library.properties | ||
LICENSE | ||
README.md |
FastShiftInOut
Arduino library for AVR optimized shiftInOut (simultaneously).
Related libraries
- https://github.com/RobTillaart/FastShiftIn
- https://github.com/RobTillaart/FastShiftOut
- https://github.com/RobTillaart/ShiftInSlow
- https://github.com/RobTillaart/ShiftOutSlow
Description
FastShiftInOut is a class that can send and receive bytes simultaneously. In that sense it mimics a SPI bus.
Experimental.
Performance
performance of write()
version | UNO (us) | ESP32 (us) |
---|---|---|
0.1.0 | 181.08 | 4.32 |
0.1.1 | 26.84 | 4.32 |
Interface
bitOrder = { LSBFIRST, MSBFIRST };
- FastShiftInOut(uint8_t dataIn, uint8_t dataOut, uint8_t clockPin, uint8_t bitOrder = LSBFIRST)
- uint8_t write(uint8_t data) reads and writes simultaneously.
- uint8_t lastWritten(void) returns last written value.
- bool setBitOrder(uint8_t bitOrder) idem.
- uint8_t getBitOrder(void) idem.
- uint8_t writeLSBFIRST(uint8_t data)
- uint8_t writeMSBFIRST(uint8_t data)
Operation
See examples
Future
must
- documentation
should
- performance measurements
- optimize for AVR
could
- void ignoreRead()
- add Print interface?