управление RGB лентой по ивентам.
- Войдите на сайт для отправки комментариев
Есть у меня попаболь. Нарисовать таймер с недельным расписанием для РГБ ленты. Записать ивенты на СД карту и по очереди сверть их с часами, вроде не сложно. Но вот пришла боль. Как быть с плавной регулировкой?? Включать по очереди не вариант. Расписывать ивенты "попиксельно" можно, но как-то грубо. Красиво бы было параллельно их исполнять... но как? В общем у ивента может быть время начала-конца и высчитано значение параметра в этот момент времени, но тогда нада перебирать ВСЕ ивенты из списка, в каждом цикле на предмет активности. А нет, то вообще загнать весь список (2 ближайших на канал управления) в оперативку (10 байт на ивент хватит) и их гонять.
В общем что-то я подвис, куда пойти. Кто с таким сталкивался, подскажите идеи по сабжу.
> но тогда нада перебирать ВСЕ ивенты из списка, в каждом цикле на предмет активности.
... не в ручную же :) , вот пусть Ардуинка и трудится - работа у неё такая !
> Как быть с плавной регулировкой??
задача - недельный "будильник", а параметр "...высчитано значение параметра в этот момент времени..." - откуда берётся - НЕ указано
Не до конца понял текст. %(
Пока пошел по странному пути. Ивент учитывает время начала, длительность, конечные значения всех каналов. При совпадании времени начала из списка с часами (перебором), уходит в процедуру смены яркости всех каналов, в т.ч. тех, что в итоге не меняются. Процедура - цикл 0-255 ( х+(у-х)*i/255 где х-начальное у-конечное значения). Задержка пустой вайл-ду до совпадения миллис+dt c реальными (dt=t*1000/256).
Тоесть паралельно менять можна, но!!! 2 накладывающихся по времени ивента стают тремя. до накладки, накладка, после накладки. Осталось либо сторонним софтом, либо в теле проводить проверку на накладки и выделять их.
Вопрос для меня пока глухой. У DS1307 есть понятие не день/месяц/год, а, как у екселя абсолютный №дня? Больно уж неохота вычислять, какой нынче день недели. Пока балуюсь в пределах 1 дня.