mirror of https://github.com/arendst/Tasmota.git
Workaround NeoPixelBus STAGE compile error
Workaround NeoPixelBus STAGE compile error
This commit is contained in:
parent
ed69f5a342
commit
ef5377e327
|
@ -48,7 +48,11 @@ extern "C"
|
||||||
#include "ets_sys.h"
|
#include "ets_sys.h"
|
||||||
#include "user_interface.h"
|
#include "user_interface.h"
|
||||||
|
|
||||||
|
// Workaround STAGE compile error
|
||||||
|
#include <core_version.h>
|
||||||
|
#if defined(ARDUINO_ESP8266_RELEASE_2_3_0) || defined(ARDUINO_ESP8266_RELEASE_2_4_0) || defined(ARDUINO_ESP8266_RELEASE_2_4_1) || defined(ARDUINO_ESP8266_RELEASE_2_4_2) || defined(ARDUINO_ESP8266_RELEASE_2_5_0)
|
||||||
void rom_i2c_writeReg_Mask(uint32_t block, uint32_t host_id, uint32_t reg_add, uint32_t Msb, uint32_t Lsb, uint32_t indata);
|
void rom_i2c_writeReg_Mask(uint32_t block, uint32_t host_id, uint32_t reg_add, uint32_t Msb, uint32_t Lsb, uint32_t indata);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
struct slc_queue_item
|
struct slc_queue_item
|
||||||
|
@ -74,7 +78,7 @@ public:
|
||||||
class NeoEsp8266DmaSpeed800Kbps
|
class NeoEsp8266DmaSpeed800Kbps
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
const static uint32_t I2sClockDivisor = 3;
|
const static uint32_t I2sClockDivisor = 3;
|
||||||
const static uint32_t I2sBaseClockDivisor = 16;
|
const static uint32_t I2sBaseClockDivisor = 16;
|
||||||
const static uint32_t ResetTimeUs = 50;
|
const static uint32_t ResetTimeUs = 50;
|
||||||
};
|
};
|
||||||
|
@ -82,7 +86,7 @@ public:
|
||||||
class NeoEsp8266DmaSpeed400Kbps
|
class NeoEsp8266DmaSpeed400Kbps
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
const static uint32_t I2sClockDivisor = 6;
|
const static uint32_t I2sClockDivisor = 6;
|
||||||
const static uint32_t I2sBaseClockDivisor = 16;
|
const static uint32_t I2sBaseClockDivisor = 16;
|
||||||
const static uint32_t ResetTimeUs = 50;
|
const static uint32_t ResetTimeUs = 50;
|
||||||
};
|
};
|
||||||
|
@ -100,7 +104,7 @@ const uint8_t c_I2sPin = 3; // due to I2S hardware, the pin used is restricted t
|
||||||
template<typename T_SPEED> class NeoEsp8266DmaMethodBase
|
template<typename T_SPEED> class NeoEsp8266DmaMethodBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NeoEsp8266DmaMethodBase(uint16_t pixelCount, size_t elementSize)
|
NeoEsp8266DmaMethodBase(uint16_t pixelCount, size_t elementSize)
|
||||||
{
|
{
|
||||||
uint16_t dmaPixelSize = c_dmaBytesPerPixelBytes * elementSize;
|
uint16_t dmaPixelSize = c_dmaBytesPerPixelBytes * elementSize;
|
||||||
|
|
||||||
|
@ -269,7 +273,7 @@ public:
|
||||||
private:
|
private:
|
||||||
static NeoEsp8266DmaMethodBase* s_this; // for the ISR
|
static NeoEsp8266DmaMethodBase* s_this; // for the ISR
|
||||||
|
|
||||||
size_t _pixelsSize; // Size of '_pixels' buffer
|
size_t _pixelsSize; // Size of '_pixels' buffer
|
||||||
uint8_t* _pixels; // Holds LED color values
|
uint8_t* _pixels; // Holds LED color values
|
||||||
|
|
||||||
uint32_t _i2sBufferSize; // total size of _i2sBuffer
|
uint32_t _i2sBufferSize; // total size of _i2sBuffer
|
||||||
|
@ -310,7 +314,7 @@ private:
|
||||||
slc_queue_item* finished_item = (slc_queue_item*)SLCRXEDA;
|
slc_queue_item* finished_item = (slc_queue_item*)SLCRXEDA;
|
||||||
|
|
||||||
// data block has pending data waiting to send, prepare it
|
// data block has pending data waiting to send, prepare it
|
||||||
// point last state block to top
|
// point last state block to top
|
||||||
(finished_item + 1)->next_link_ptr = (uint32_t)(s_this->_i2sBufDesc);
|
(finished_item + 1)->next_link_ptr = (uint32_t)(s_this->_i2sBufDesc);
|
||||||
|
|
||||||
s_this->_dmaState = NeoDmaState_Sending;
|
s_this->_dmaState = NeoDmaState_Sending;
|
||||||
|
@ -367,7 +371,7 @@ private:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename T_SPEED>
|
template<typename T_SPEED>
|
||||||
NeoEsp8266DmaMethodBase<T_SPEED>* NeoEsp8266DmaMethodBase<T_SPEED>::s_this;
|
NeoEsp8266DmaMethodBase<T_SPEED>* NeoEsp8266DmaMethodBase<T_SPEED>::s_this;
|
||||||
|
|
||||||
typedef NeoEsp8266DmaMethodBase<NeoEsp8266DmaSpeedWs2813> NeoEsp8266DmaWs2813Method;
|
typedef NeoEsp8266DmaMethodBase<NeoEsp8266DmaSpeedWs2813> NeoEsp8266DmaWs2813Method;
|
||||||
|
|
|
@ -90,7 +90,7 @@ platform = https://github.com/platformio/platform-espressif8266
|
||||||
build_flags = ${esp82xx_defaults.build_flags}
|
build_flags = ${esp82xx_defaults.build_flags}
|
||||||
-Wl,-Teagle.flash.1m.ld
|
-Wl,-Teagle.flash.1m.ld
|
||||||
; nonos-sdk 22x
|
; nonos-sdk 22x
|
||||||
-DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x
|
-DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x
|
||||||
; nonos-sdk-pre-v3
|
; nonos-sdk-pre-v3
|
||||||
; -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3
|
; -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3
|
||||||
; lwIP 1.4 (Default)
|
; lwIP 1.4 (Default)
|
||||||
|
|
Loading…
Reference in New Issue