Simplex noise is something different and is not implemented by the
FastLED library (yet!). Therefore, don't confuse people by calling it
Simplex Noise.
Matrix examples x,y indicies changed back to uint8_t but returned pixel number kept as uint16_t
Added "Params for width and height" and "Param for different pixel layouts" comment lines to match other matrix examples.
In NoisePlayground changed
#define kMatrixWidth to const uint8_t kMatrixWidth to match format in other matrix examples.
As suggested in #1208 this updates:
LEDS.[function] to FastLED.[function]
Switch from byte to uint8_t
Use uint16_t for all LED index variables
Remove messages about minimum version
The examples are built for various different boards/platforms. Where
necessary, examples were changed to enable compilation also for ESP8266
and ESP32 platforms.
* Bring fastpin_avr in line with standard defpin macros (to simplify porting document notes
* checkpoint - bring all the arm and esp platforms in line w/defpin macro naming/ordering
* checkpoint - update PORTING.md to include information around just adding pin definitions if needed
* Kick all the pin definitions to allow for some runtime querying of ports and tweak pintest to have it provide pin definitions for platforms that have port definitions but might be missing pin specifics (e.g. not yet-supported avr platforms
* Support for ESP32
Credit to Rina Shkrabova for the first cut.
* Clean up interrupt handling
I think there was actually an error in the interrupt enabling/disabling, but I also cleaned it up so that it is more clear how interrupts are handled.
* Better interrupt handling
* Added RMT version
Not fully portable yet, though. The timing numbers are hard-wired for WS2812, and the RMT channel is also hard-wired.
* Fixed the timing
Timing is now computed from T1, T2, amd T3 instead of being hard-wired.
* Better buffer management
The RMT signal is sent in 10-pixel chunks, using double-buffering to hide the latency when possible. Also: assign RMT channels sequentially.
* Total rewrite using Martin's code
* Better comments
* Fixed the timing calculation
We were not doing the conversion from ESP32 cycles to RMT cycles correctly. Now it all works!
* Added Martin's changes
* Removed confusing comments
* Added my name!
* Fixed ESP32 compile problem
On ESP platforms the dev kit provides the function __cxa_pure_virtual, so there is no need to define it.
* honor WAIT_TIME
for chipsets that need it (for example TM1829)
* Better interrupt handling
Suggested by @h3ndrik : allocated the interrupt once at the initialization and then just turn it on and off. This is the strategy that the ESP32 core uses also.
* Major refactoring
Two major changes to the RMT driver. First, I realized that we can have only one interrupt handler attached to the RMT peripheral, so it needs to be able to handle all of the attached strips. To accomplish this, I store each ClocklessController in an array indexed by its RMT channel. The interrupt handler can then take the channel that triggered it and index into the array to get the right controller.
The second major change is that I replaced all of the explicit bit twiddling of the RMT configurartion with calls to the proper functions in ESP32 core. That should make the code more stable if the core changes.
* Fixed the interrupt dispatch
Since the interrupt handler is global for all channels, we need to store not just the controller, but also the buffer refill function for each strip.
* Added a demo
This version of DemoReel100 spins off a separate task on core 0 that just performs the FastLED.show() operations. Regular code running on core 1 (the default for Arduino) signals this task to request a show().
* Avoid unnecessary timeouts
Replaced a 500ms delay in the show task with MAX_DELAY. There's really no point in timing out (and crashing the program) just because the application hasn't called show.
* Parallel output
Reworked the code again in order to support parallel output, which is now the default mode. You can also now ask it to use the built-in RMT driver if you have other parts of your code that need the RMT peripheral.
Two #defines control choices -- put either or both of these before including FastLED.h:
#define FASTLED_RMT_CORE_DRIVER
Uses the ESP core RMT driver. To do this, though, it allocates a big buffer to hold all of the pixel bits, so there is a memory and compute cost.
#define FASTLED_RMT_SERIAL_OUTPUT
Force serial output of each strip.
* Documentation
Describing the implementation and the compile-time switches
* Removing files that should not be there
* Fixed synchronization
The previous checkin had bugs in the syncronization that caused problems in parallel mode when strips are different lengths.
* Fixed a stupid bug
Made the code bullet-proof in a few ways, but most importantly fixed a terrible integer underflow bug in the code that fills the RMT buffer.
* Another major overhaul
The big change in this version is the ability to support more than 8 controllers. Instead of assigning RMT channels to controllers in a fixed mapping, channels are assigned on the fly, allowing the driver to reuse channels as they become available.
* Oops
Didn't mean to check these in.
* Fixed built-in driver mode
Fixed the code so that it works with the built-in RMT driver. There's nothing special to do to enable it -- just #define FASTLED_RMT_BUILTIN_DRIVER true
* Cleanup
Fixing some documentation and configuration stuff