* Postpone memory allocations until Initialize is called.
TODO: Add return value to Begin() and Initialize() to check for successful allocations.
* Add success return to Begin()/Initialize()
* Add IsValid() method to prevent issues with unallocated buffers.
* code style update
* More code style update
* Fix return type
* Remove erroneous Destruct call
must be output pins.
caveat, there seems to be a GCC bug cause the compiler to incorrectly produce code around one of the changes, due to union with a 32bit and 8:24 bit. The IO registers must be written as 32 bits but the compiler keeps short circuit the code even though it is written to write the whole 32 bits.
The official pinMode() code has a work around in it for this but that doesn't fit into the bitbang code. This issue maybe already fixed with newer IDF with a newer GCC as this has been reported to work from others.
* Fixed and improved HtmlColor::ToNumericalString which decremented bufLen twice and returned wrong results
* Strictly expect least 8 characters
---------
Co-authored-by: Daniel Brall <git@bradan.eu>
* a little duplication of constants
* Update Tlc59711GenericMethod.h
remove temp buffer and just send words reversed
add custom default speed that works without flicker
* Move interrupt handling in EspBitBangMethod
Move the interrupt enable/disable in to the common
neoEspBitBangWriteSpacingPixels function.
* Check interrupts during ESP bit-banging
Rather than leave interrupts completely disabled, check in between
elements. If interrupted for long enough to complete an update, retry
from the beginning. We don't yield to the system context, so only
interrupt processing goes on.
This is intended to stave off interrupt related crashes (hard WDT
resets) experienced when a too-long strand is used with a too-busy
network. Essentially it trades off correctness for stability.
This logic is inspired by the workaround used in FastLED.
* Replace TInterPixel with TLatch when bit-banging
In NeoESPBitBangMethod, remove the minimum time between pixels, and
replace it with a maximum time between pixels. Use the outer function
to handle the retry logic.
* Support no interrupt mode when bit-banging
* Add no-interrupt bit-banging method typedefs