forked from Makuna/NeoPixelBus
@@ -137,6 +137,13 @@ public:
|
||||
Dirty();
|
||||
}
|
||||
|
||||
// used by DotStartSpiMethod if pins can be configured
|
||||
void Begin(int8_t sck, int8_t miso, int8_t mosi, int8_t ss)
|
||||
{
|
||||
_method.Initialize(sck, miso, mosi, ss);
|
||||
Dirty();
|
||||
}
|
||||
|
||||
void Show()
|
||||
{
|
||||
if (!IsDirty())
|
||||
|
@@ -51,19 +51,18 @@ public:
|
||||
return true; // dot stars don't have a required delay
|
||||
}
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32)
|
||||
void Initialize(int8_t sck, int8_t miso, int8_t mosi, int8_t ss)
|
||||
{
|
||||
SPI.begin(sck, miso, mosi, ss);
|
||||
init();
|
||||
}
|
||||
#endif
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
SPI.begin();
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP8266)
|
||||
SPI.setFrequency(20000000L);
|
||||
#elif defined(ARDUINO_ARCH_AVR)
|
||||
SPI.setClockDivider(SPI_CLOCK_DIV2); // 8 MHz (6 MHz on Pro Trinket 3V)
|
||||
#else
|
||||
SPI.setClockDivider((F_CPU + 4000000L) / 8000000L); // 8-ish MHz on Due
|
||||
#endif
|
||||
SPI.setBitOrder(MSBFIRST);
|
||||
SPI.setDataMode(SPI_MODE0);
|
||||
init();
|
||||
}
|
||||
|
||||
void Update()
|
||||
@@ -93,6 +92,21 @@ private:
|
||||
|
||||
uint8_t* _sendBuffer; // Holds SPI send Buffer, including LED color values
|
||||
|
||||
void init()
|
||||
{
|
||||
#if defined(ARDUINO_ARCH_ESP8266)
|
||||
SPI.setFrequency(4000000L); // more than 4mhz causes CLK pulse malformation
|
||||
#elif defined(ARDUINO_ARCH_ESP32)
|
||||
SPI.setFrequency(4000000L); // more than 4mhz causes CLK pulse malformation
|
||||
#elif defined(ARDUINO_ARCH_AVR)
|
||||
SPI.setClockDivider(SPI_CLOCK_DIV2); // 8 MHz (6 MHz on Pro Trinket 3V)
|
||||
#else
|
||||
SPI.setClockDivider((F_CPU + 4000000L) / 8000000L); // 8-ish MHz on Due
|
||||
#endif
|
||||
SPI.setBitOrder(MSBFIRST);
|
||||
SPI.setDataMode(SPI_MODE0);
|
||||
}
|
||||
|
||||
size_t calcBufferSize(size_t sizePixels) const
|
||||
{
|
||||
const size_t countEndFrameBytes = calcEndFrameSize(sizePixels);
|
||||
|
Reference in New Issue
Block a user