Функция LPD_RGBW_Solid наваливает в массив ledColors RGB составляющие для каждого светодиода:
n+0 - red
n+1 - green
n+2 - blue
n+3 - white
n+4 - black
Ну и при каждом обращении в loop увеличивает яркость каждого канала. Дошли до 0xFF - начали уменьшать. Дошли до 0 - начали увеличивать. Ну тупая ведь задача!!!
Функция StripShow(); - это уже реально выводит подготовленный массив на светодиоды.
Однако! Оно делает в реальности цикл вверх по яркости, вниз по яркости. Потом делает 3 раза мырг-мырг быстро ))))
Я уже просто в истерике. Не понимаю, где искать косяк!!!
И самое смешное, если в функции подготовки цветов ( в LPD_RGBW_Solid() ) сделать вот так:
CC += dir;
if( CC == 0 ){ dir = 1; delay(0); }
if( CC == 0xFF ){ dir = -1; delay(0); }
И сразу всё начинает работать!
Блин! Откуда и зачем этот нулевой делэй так необходим???!!!
А я знаете чему удивляюсь? Как каждый раз одни и те же личности умудряются наступить ровно на те же самые грабли при формулировании вопроса? Вот, как? Альтернативно-одарённые! Не иначе!
Ну, вот сколько раз твердили миру (и лично Вам), что код нужно давать ПОЛНЫЙ (если Вы не знаете значения этого слова, посмотрите у Даля) и, кроме того, необходимо точно указывать какое именно оборудование используется.
Вот как мне отвечать на Ваш вопрос? Давайте попробую.
Я предполагаю, что в Вашей функции StripShow нет проверки когда она вызывалась в последний раз. Оно, конечно, ХЗ, т.к. она секретная, но я предполагаю, что нет.
Я предполагаю, что речь идёт об адресной ленте. Это ниоткуда не следует, но я предположу это.
Так, вот, если мои предположения верны, то скорее всего, Вы слишком часто её вызываете. Чтобы проверить эту гипотезу, уберите свои делеи и поставьте просто deay(1); перед вызовом функции StripShow (или после). Если заработает, то скорее всего это и есть.
А вот если мои предположения не верны, то я зря бил пальцы об клавиатуру. И чем чаще такое случается, тем меньше у меня желания помогать людям, вроде Вас, которым лень толком объяснить свою проблему.
конечно секретная.
Это же та самая функция из ветки из срача про ленту, где автор утверждал, что все решил сам, без помощи, но продемонстрировать код отказался.
Конечно! Теперь я вижу, что никакой проверки времени предыдущего вызова нет. Значит, причина такого поведения понятна и я её уже озвучил. Правда, вместо благодарности, огрёб, бывает. И Вам не хворать.
Да я потому и написал - “почти что псевдо код”
Там просто еще много чего “под капотом”, что к вопросу не имеет отношения.
Ну если интересно, то вот полный код… Извиняюсь, но не буду вычищать все свои попутные экспериментальные комменты…
Не понимаю. Нормальные люди, специалисты, от нех. делать отвечают какому то явному говну, Вот что противно.
Понятно, я могу ошибаться, но судя по манерам…, по разговору…
Или же это от нефиг делать, от бесцельной траты времени?