forked from Makuna/NeoPixelBus
@@ -137,6 +137,13 @@ public:
|
|||||||
Dirty();
|
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()
|
void Show()
|
||||||
{
|
{
|
||||||
if (!IsDirty())
|
if (!IsDirty())
|
||||||
|
@@ -51,19 +51,18 @@ public:
|
|||||||
return true; // dot stars don't have a required delay
|
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()
|
void Initialize()
|
||||||
{
|
{
|
||||||
SPI.begin();
|
SPI.begin();
|
||||||
|
init();
|
||||||
#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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Update()
|
void Update()
|
||||||
@@ -93,6 +92,21 @@ private:
|
|||||||
|
|
||||||
uint8_t* _sendBuffer; // Holds SPI send Buffer, including LED color values
|
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
|
size_t calcBufferSize(size_t sizePixels) const
|
||||||
{
|
{
|
||||||
const size_t countEndFrameBytes = calcEndFrameSize(sizePixels);
|
const size_t countEndFrameBytes = calcEndFrameSize(sizePixels);
|
||||||
|
Reference in New Issue
Block a user