Хорошо известная библиотека FastLed для тех, кто любит разноцветные огоньки. Вот у меня разные режимы и яркость, всё регулируется энкодером. Всё хорошо, но захотелось сделать запись в EEPROM текущей яркости по длинному нажатию на ручку энкодера. И тут всё хорошо, но зазотелось на секунду моргнуть зелёным светом всей лентой в качестве индикации "Сделано, в EEPROM письнули". Хотел тупо в функции написать типа Код (C++): EEPROM.write(eepaddress, max_bright); EEPROM.commit(); fill_solid(leds, NUM_LEDS, CRGB::Green); FastLED.show(); delay(1000); delay - моветон, но ведь мне не нужно, чтобы во время этого мигания что-то ещё заполнялось, а так подумал, что delay остановит текущий режим мигания лентой и секунду повисит зеленая лента. А вот фигвам - мигает один светодиод (видимо, fill_solid тоже в цикле loop по одному зажигает по одному светодиоды) и всё. Но, что характерно, если нажать и удержать ручку энкодера ещё раз (если не менять до этого яркость), то всё сработает, как положено. Вот этого поведения не понимаю.
Нет, конечно. fill_solid - очень простая функция (кто Вам мешает посмотреть на неё?), вот она: Код (C++): void fill_solid( struct CRGB * leds, int numToFill, const struct CRGB& color) { for( int i = 0; i < numToFill; i++) { leds[i] = color; } } Если параметры переданы правильно, то она выгрузит весь массив. Проблема в параметрах или в чём-то ещё. Нужен предметный разговор, подготовьте маленький, но полный (чтобы можно было запустить) пример, иллюстрирующий проблему.