Closed bbulkow closed 4 years ago
@bbulkow I just add add the number of mem blocks to the channel as I'm assigning them:
int channel = 0;
while (channel < FASTLED_RMT_MAX_CHANNELS && gNext < gNumControllers) {
ESP32RMTController::startNext(channel);
// -- Important: when we use more than one memory block, we need to
// skip the channels that would otherwise overlap in memory.
channel += FASTLED_RMT_MEM_BLOCKS;
}
Sweet and thanks. It's probably time for me to test gNumControllers > RMT_MAX_CHANNELS, which will happen more frequently when RMT_MEM_BLOCKS > 1, want to make sure all that works even with this extra complication.
I was thinking the same thing.I think it will work, since the next controller just takes the channel number that was freed up.
Checked in, will test this afternoon.... couldn't get any worse.... :-0
Resolved, hopefully.
I just tell people that if they're not happy, I'll give them a full refund. ;-)
Multiple channels crashes immediately. Need to fix.
Ok, I'll take a look tomorrow.
On Mon, Sep 14, 2020 at 10:21 PM Brian Bulkowski notifications@github.com wrote:
Multiple channels crashes immediately. Need to fix.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/bbulkow/FastLED-idf/issues/16#issuecomment-692421462, or unsubscribe https://github.com/notifications/unsubscribe-auth/AATSHK3T5OCBU2ULZTR6US3SF3FSPANCNFSM4RL3L2HQ .
Not in your version. I wrote it a different way. My problem.
Resolved with ba32cc3
If you use the default code which uses mem_blocks_num of 2 ( or increase it further ), ESP-IDF demands that you skip channels. For example, if you use channel 0 with 2 memblocks, then you must skip channel 1 because its memory is already in use.
Until this issue is resolved, you can use one LED strip with greater mem_blocks, or you can use a mem_blocks_num of 1 and multiple strips. Looking at a fix over the next few days, pull requests welcome.
Thanks @samguyer for bringing this up.