Страница 1 из 1
Упростить блок
Добавлено: 31.03.2017{, 02:47}
Oleg_UA
Блок служить для управления LED освещение но в связи с большим их количеством стал вопрос с перегрузом памяти контролера, может кто подскажет как уменьшить его размер без изменения принципа работы.
Упростить блок
Добавлено: 31.03.2017{, 13:38}
Pixima
Oleg_UA, расскажите, пожалуйста, про функционал блока. По выходам блока как-то непонятно. Случайно не для WS2812?
Упростить блок
Добавлено: 31.03.2017{, 14:22}
Boroda
Oleg_UA, как я понимаю, это самый маленький блок в Вашем проекте. Сильной экономии при оптимизации получить будет сложно.
Добавлено (31.03.2017, 14:22)
---------------------------------------------
Компилятор сам довольно хорошо оптимизирует:
Было 2 блока условий:
if ((circle)&&(! cycle_last )) // смена направления при первом нажатие
{aaaaaa}
и
if (circle) // запуск кругового цикла
{bbbbbb}
Оптимизировал так.
if (circle) // запуск кругового цикла
{
if (! cycle_last ) // смена направления при первом нажатие
{aaaaaa}
bbbbbb.
}
С точки зрения языков неСИ (бейсик, паскаль и т.п.), да и вообще по логике, такая оптимизация должна приводить к уменьшению размера кода, потому как делается 2 сравнения, вместо трех. Но Wiring-компилятор это что-то... Код в итоге увеличился с 1448, до 1500 байт.
Упростить блок
Добавлено: 31.03.2017{, 14:33}
Pixima
Boroda, подскажите, пожалуйста, возможно ли на базе флпрог создание модуля для управления WS2812?
p.s. Прошу прощения у Oleg_UA, что влезаю в Ваш топик.
Упростить блок
Добавлено: 31.03.2017{, 14:53}
Boroda
Pixima, где-то видел скетчи управления, но т.к. вещь это ОЧЕНЬ быстрая (управляющие сигналы 0,4/0,8us), то без библиотеки тут никак. Можно попробовать раскурить библиотеку Adafruit_NeoPixel.h, время будет, посмотрю, что можно сделать.
Но что-то на нашем форуме уже имеется:
http://forum.flprogwiki.ru/viewtopic.php?f=10&t=1147
Упростить блок
Добавлено: 31.03.2017{, 15:30}
Pixima
Boroda, не зря у Вас такое звание. Большое спасибо!
Упростить блок
Добавлено: 31.03.2017{, 18:18}
Oleg_UA
Pixima писал(а):расскажите, пожалуйста, про функционал блока. По выходам блока как-то непонятно. Случайно не для WS2812?
Функционал прост: этот блок управляет яркостью свечения одноцветной ленты, проще говоря димер с плавным включением, выключением и круговой регулировкой для подстройки яркости.
Названия входов и выходов говорят сами за себя
WS2812 это совсем другое
.
Boroda писал(а):это самый маленький блок в Вашем проекте. Сильной экономии при оптимизации получить будет сложно.
Задача контроллера только управлять светодиодными лентами с помощью выключателей и команд полученных от других контроллеров, загвоздка в количестве одинаковых блоков и уменьшив даже на 10%уже будет хорошо.
Первое условие дописывал уже в процессе использования и как то даже не додумался так менять направление
Спасибо за подсказку, буду шаманить дальше может что и получится урезать.
Упростить блок
Добавлено: 01.04.2017{, 01:47}
Boroda
Oleg_UA, поставьте блок PWM_function в проект 1 раз, и все блоки PWM_trig замените. Должно работать, если я нигде не ошибся.
del
П.С. код получился почти такой же...
Упростить блок
Добавлено: 01.04.2017{, 03:23}
Boroda
А вот в FBD лучше получилось.
Четыре блока на плате:
1. исходник 3502/139байт
2. с отдельной функцией 3356/153байт
3. FBD 2954/162байт
Упростить блок
Добавлено: 01.04.2017{, 15:09}
Oleg_UA
Boroda, Большое спасибо за помощь, буду разбираться и пробовать:)
Мне ещё нужно получше разобраться с последовательность в FLprog, вроде и просто но не всё выходить без блоков с кодом.
Упростить блок
Добавлено: 01.04.2017{, 19:34}
Boroda
Самому нравится на СИ, потому как последовательность действий сразу образуется. А коробочки чуть передвинешь и логика сразу ломается. Но до оптимизатора FBD, который реализован в FLProg, мне не угнаться.
Упростить блок
Добавлено: 01.04.2017{, 20:02}
Oleg_UA
Вот и я путаюсь с этими "коробочками" но когда проект громадный то тут уже визуальная среда выигрывает в скоросте редактирование. Проекту до совершенства конечно далеко но он стоит всех усилий а автор вообще молочага
Упростить блок
Добавлено: 01.04.2017{, 20:32}
Boroda
Oleg_UA писал(а):Проекту до совершенства конечно далеко
Да вполне себе функционально и довольно стабильно. Не хватает конечно последовательности выполнения блоков как в CodeSys "по ходу сигнала". Но если это реализовать, то объем используемой оперативки увеличится очень прилично.
Упростить блок
Добавлено: 01.04.2017{, 23:18}
Oleg_UA
Boroda писал(а):Да вполне себе функционально и довольно стабильно
Пару версий назад стабильность хромала, сейчас совсем другое дело хоть и тормозит жутко.
Москва тоже не сразу строилась так и FLprog тоже со временем автор отточит.
CodeSys хоть и тоже частично визуальный но для работы с ним нужно иметь больше чем минимум знаний а здесь даже школьник может сотворить "чудо" не зная языка.
Работа над программой уже проделана не малая но нет предела совершенству
Отвлеклись от темы пора завязывать, ещё раз спасибо за помощь