12template <uint16_t N, class SPIDriver>
17 spi(
std::forward<SPIDriver>(spi)) {}
19template <u
int16_t N,
class SPIDriver>
23 updateBufferedOutputs();
26template <u
int16_t N,
class SPIDriver>
30 spi.beginTransaction(settings);
32 const uint16_t bufferLength = this->buffer.getBufferLength();
33 if (this->bitOrder == LSBFIRST)
34 for (uint16_t i = 0; i < bufferLength; i++)
35 spi.transfer(this->buffer.getByte(i));
37 for (uint16_t i = bufferLength; i-->0;)
38 spi.transfer(this->buffer.getByte(i));
constexpr PinStatus_t LOW
constexpr PinStatus_t HIGH
constexpr PinMode_t OUTPUT
uint16_t pin_t
The type for Arduino pins (and ExtendedIOElement pins).
#define BEGIN_AH_NAMESPACE
#define AH_DIAGNOSTIC_EXTERNAL_HEADER()
#define AH_DIAGNOSTIC_POP()
A class for serial-in/parallel-out shift registers, like the 74HC595 that are connected to the SPI bu...
void updateBufferedOutputs() override
Write the state buffer to the physical outputs.
void begin() override
Initialize the shift register.
A class for serial-in/parallel-out shift registers, like the 74HC595.
void pinMode(pin_t pin, PinMode_t mode)
An ExtIO version of the Arduino function.
void digitalWrite(pin_t pin, PinStatus_t val)
An ExtIO version of the Arduino function.