31 #if defined(ARDUINO_ARCH_AVR) && !defined(__arm__)
43 Sm16716MethodBase(uint8_t pinClock, uint8_t pinData, uint16_t pixelCount,
size_t elementSize,
size_t settingsSize) :
44 _sizeData(pixelCount* elementSize + settingsSize),
46 _wire(pinClock, pinData)
48 _data =
static_cast<uint8_t*
>(malloc(_sizeData));
49 memset(_data, 0, _sizeData);
52 #if !defined(__AVR_ATtiny85__) && !defined(ARDUINO_attiny)
69 #if defined(ARDUINO_ARCH_ESP32)
84 _wire.beginTransaction();
87 for (
size_t frameBytes = 0; frameBytes < _sizeFrame; frameBytes++)
89 _wire.transmitByte(0x00);
91 _wire.transmitBit(LOW);
92 _wire.transmitBit(LOW);
93 _wire.transmitBit(HIGH);
95 for (
size_t pixel = 0; pixel < (_sizeData / 3); pixel++)
97 _wire.transmitByte(_data[pixel]);
98 _wire.transmitByte(_data[pixel + 1]);
99 _wire.transmitByte(_data[pixel + 2]);
100 _wire.transmitBit(HIGH);
103 _wire.endTransaction();
124 _wire.applySettings(settings);
128 const size_t _sizeData;
129 const size_t _sizeFrame;
Sm16716MethodBase< TwoWireBitBangImple > Sm16716Method
Definition: Sm16716GenericMethod.h:138
Definition: Sm16716GenericMethod.h:39
void Update(bool)
Definition: Sm16716GenericMethod.h:82
bool AlwaysUpdate()
Definition: Sm16716GenericMethod.h:106
uint8_t * getData() const
Definition: Sm16716GenericMethod.h:112
Sm16716MethodBase(uint8_t pinClock, uint8_t pinData, uint16_t pixelCount, size_t elementSize, size_t settingsSize)
Definition: Sm16716GenericMethod.h:43
T_TWOWIRE::SettingsObject SettingsObject
Definition: Sm16716GenericMethod.h:41
Sm16716MethodBase(uint16_t pixelCount, size_t elementSize, size_t settingsSize)
Definition: Sm16716GenericMethod.h:53
bool IsReadyToUpdate() const
Definition: Sm16716GenericMethod.h:64
void Initialize()
Definition: Sm16716GenericMethod.h:77
size_t getDataSize() const
Definition: Sm16716GenericMethod.h:117
~Sm16716MethodBase()
Definition: Sm16716GenericMethod.h:59
void applySettings([[maybe_unused]] const SettingsObject &settings)
Definition: Sm16716GenericMethod.h:122