Страница 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 хоть и тоже частично визуальный но для работы с ним нужно иметь больше чем минимум знаний а здесь даже школьник может сотворить "чудо" не зная языка.
Работа над программой уже проделана не малая но нет предела совершенству  
Отвлеклись от темы пора завязывать, ещё раз спасибо за помощь