30 #if defined(ARDUINO_ARCH_AVR) && !defined(__arm__)
42 Mbi6033MethodBase(uint8_t pinClock, uint8_t pinData, uint16_t pixelCount,
size_t elementSize,
size_t settingsSize) :
43 _countChips(
NeoUtil::RoundUp(pixelCount * elementSize, c_countBytesPerChip) / c_countBytesPerChip),
44 _sizeData(_countChips * c_countBytesPerChip + settingsSize),
46 _wire(pinClock, pinData)
48 _data =
static_cast<uint8_t*
>(malloc(_sizeData));
52 #if !defined(__AVR_ATtiny85__) && !defined(ARDUINO_attiny)
69 #if defined(ARDUINO_ARCH_ESP32)
70 void Initialize(int8_t sck, int8_t miso, int8_t mosi, int8_t ss)
73 _wire.begin(sck, miso, mosi, ss);
92 const uint16_t chipLength = _countChips - 1;
93 const uint8_t headerFrame[6] = { 0xf3,
95 static_cast<uint8_t
>(chipLength >> 12),
96 static_cast<uint8_t
>((chipLength >> 4) & 0xff),
97 static_cast<uint8_t
>((chipLength << 4) & 0xff),
109 _wire.beginTransaction();
112 delayMicroseconds(c_usResetTime);
113 _wire.transmitBit(0);
114 delayMicroseconds(c_usResetTime);
117 _wire.transmitBytes(headerFrame,
sizeof(headerFrame));
121 _wire.transmitBytes(_data, _sizeData);
123 _wire.endTransaction();
144 _wire.applySettings(settings);
151 static const uint16_t c_countBytesPerChip = 24;
152 static const uint16_t c_usResetTime = 21;
154 const uint16_t _countChips;
155 const size_t _sizeData;
Mbi6033MethodBase< TwoWireBitBangImple > Mbi6033Method
Definition: Mbi6033GenericMethod.h:162
Definition: Mbi6033GenericMethod.h:38
T_TWOWIRE::SettingsObject SettingsObject
Definition: Mbi6033GenericMethod.h:40
void Update(bool)
Definition: Mbi6033GenericMethod.h:82
~Mbi6033MethodBase()
Definition: Mbi6033GenericMethod.h:59
bool IsReadyToUpdate() const
Definition: Mbi6033GenericMethod.h:64
void Initialize()
Definition: Mbi6033GenericMethod.h:77
uint8_t * getData() const
Definition: Mbi6033GenericMethod.h:132
void applySettings([[maybe_unused]] const SettingsObject &settings)
Definition: Mbi6033GenericMethod.h:142
bool AlwaysUpdate()
Definition: Mbi6033GenericMethod.h:126
Mbi6033MethodBase(uint16_t pixelCount, size_t elementSize, size_t settingsSize)
Definition: Mbi6033GenericMethod.h:53
Mbi6033MethodBase(uint8_t pinClock, uint8_t pinData, uint16_t pixelCount, size_t elementSize, size_t settingsSize)
Definition: Mbi6033GenericMethod.h:42
size_t getDataSize() const
Definition: Mbi6033GenericMethod.h:137