Добавить Функции

В данный форуме Вы можете создавать темы посвящённые расширению функционала программы или сайта. После рассмотрения Ваше предложение будет перенесено в соответствующее место
Ответить
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Добавить Функции

#1

Сообщение Слимпер » 05.04.2016{, 09:59}

В некоторых вариантах реализации FBD кроме собственный функциональных блоков, существует возможность создавать функции.
Главное отличие, отсутствие собственной внутренней памяти.

Внедрение этого механизма позволить сильно экономнее расходовать оперативную память.
Это особенно актуально, если в разных частях программы необходимо производить сложные вычисления или работу со строковыми переменными.

Но  тут надо будет следить  за  использованием  внутренних переменных  и триггеров, или за тем чтобы одновременно был активен только один экземпляр функции (используя для этого вход EN)

Просмотрев как сейчас генерируется код  функциональных блоков при передачи в  Arduino IDE:
1.      Создается структура данных  для работы блока;
2.      Для каждого экземпляра ФБ создается экземпляр структурыданных ;
3.      Создается функция ;
4.      В секции loop  при вызове ФБ в функцию передается нужный экземплярструктуры данных, после обработки в эту же структуру возвращается результат.

Мне кажется для введения «Функций» достаточно будет:
--В интерфейсе  ФБ добавить еще одну галочку на подобии EN, назвав ее соответственно Функция
--А при генерации кода в случаи перевода ФБ в режим функция, генерировать только один экземпляр структуры данных и всегда его использовать.
--Добавить при активации входа EN Boolean переменную, на которой будет генерироваться импульс при активации работы блока. (этого и сейчас бывает не хватает)

P.S. Идея возникала, когда создавал набор блоков для удобного(мне) создания древовидного меню настроек с запись их в EEPROM.
Блоки написал, но их можно использовать только на Mega, да и там осторожно, так как при добавлении экземпляра занимается от 50 до 100 байтов ОЗУ, а больше одного блока в работе у
меня и не бывает.
Последний раз редактировалось Слимпер 08.04.2016{, 10:11}, всего редактировалось 1 раз.

Ответить

Вернуться в «Новые»