Commit Graph
6 Commits
Author SHA1 Message Date
Michael Miller 2360904727 Esp8266 3 step to reduce memory (#830)
Esp8266 3 step

plus xMethods with examples
2024-08-29 10:58:48 -07:00
Michael Miller 3bd63bffce Esp32 bit bang pins above 31 are supported (#829)
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.
2024-08-25 20:19:51 -07:00
Michael Miller e40289f89c CONFIG_IDF_TARGET not a compile flag anymore (#799) 2024-04-24 11:06:33 -07:00
Michael Miller 22746479f6 Compiles with IDF5 (#789) 2024-03-22 11:38:45 -07:00
Will Miles 64958ad743 Esp bitbang interrupt workaround (#759)
* 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
2024-01-28 15:18:19 -08:00
Michael Miller c74febefef Method File Cleanup (#683) 2023-04-09 10:02:49 -07:00