Если будете пользоваться, там ничего не ограничивается “именованными цветами” – они просто для удобства. Вы можете задавать любой цвет, какой Вам нравится через R, G и B. Типа
uint8_t red = 212, green = 180, blue = 67;
RgbLED myColor(red, green, blue);
Цвета можно присваивать друг другу, складывать (смешивать), усиливать/ослаблять и т.п., посмотрите в rgbLED.h там все методы расписаны.
Ещё раз повторю, для данного функционала, не нужны никакие два ядра и прочие извороты.
Достаточно всего лишь вспомнить, что INT0 и INT1 имеют максимальный приоритет и имеют настраиваемые параметры прерывания, чего вполне хватает для детектирования сигналов пульта и игнорирования ленты на время приема.
Ничего не понял. По мне это бессмысленный набор слов.
Функция noInterrupts() запрещает любые прерывания. Ни одно не произойдёт до тех пор, пока запрет не будет отменён функцией interrupts(). Вот и всё. Никто никого не преодолевает.
В библиотеке AdafruitNeopixel.h отключение прерывания предусмотрено для модулей типа NRF52 и esp32.
Nano/Uno работает без отключения прерываний.
Что там гивер наваял мне неведомо, я говно не ем.
Зачем человека оскорбляете!? Он ни при чём. Это я нашёл строки:
#if !(defined(NRF52) || defined(NRF52_SERIES) || defined(ESP32))
noInterrupts(); // Need 100% focus on instruction timing
#endif
и понял их с точностью наоборот - запрет на прерывания всем кроме…
Тем более, что именно ESP32 пестрит на умных пикселях т.е. искажает данные в пакете и без ик управления. И именно если закомментить noInterrupts(); на уно также начинает пестрить лента. Вроде так быть не должно - верно? А оно есть. Может быть у Вас всё и работает с пультами, но у меня при разных вариациях реализаций всегда есть сбои на кнопках, кроме разделения ленты и ик управления по разным ядрам.
…и вообще… надо понимать… программирование вторично к результатам опытов в железе ибо от и до навыдумавыно человеком в отличии от железа, которое сделано им
А Вы говорите - говно, говно. Оно вторично от человека…ферштейн?
В свою бытность, близко работая с учеными и пофессорами, которые всегда пытались теоретически обосновать любую хрень, появившуюся случайным образом в эксперементе. Это была для них неподкупная радость в моменте, которая в 99% случаях заканчивалась фиаско. У железа всегда есть переходные процессы, которые невозможно предвидеть и описать теоретическими формулами.
Попробовал ws2812b на есп32 с ик управлением. Не нужно разделений на ядра Куда то пестрение исчезло. Видимо нет запрета на прерывания, осечек кнопок на пульте нет.
уважаемый, ты осознаешь, что для корректной отработки сигнала с одного пина (с частотой сколько там у ИК 48КГц?) тебе требуется по сути полноценный персональный компьютер середины 90х годов, на базе селерона (пушто кеша нет) ? ты правда думаешь, что это не из-за того что ты чето не то делаешь?)
едит: двухпроцессороный ПК.
Не знаю, была цель сделать совместно-корректную работу ws2812b и ик приёмника на варианте функции ТС. Я это сделал на уно, RP2040, ЕСП32. Отрабатывал на ёлочке-гирлянде и пламени (матрица 8*32). Евгений П предложил свой внебиблиотечный вариант управления светодиодами. Пиксели весьма чувственны к прерываниям и пестрят с ними. Вот и всё о чём я думал и делал
Не знаю какой смысл “противо-”, а какой “за-” “положный”, но если Вы про процитированный кусок кода, то смысл его предельно ясен: если не определена ни одна из трёх констант: NRF52, NRF52_SERIES и ESP32, то вставить вызовnoInterrupt().
Никакого другого смысла там нет, ни “за-”, ни противоположного.