Мы уже как-то привыкли, что всё работает в FLProg как есть, и ничего не хотим менять.
Но вот наступает момент, когда надо чего-то добавить, и наша программа после "апгрэйдов" начинает тупить, тормозить и т.д.
Вопрос "почему?" не может иметь однозначного ответа, пока мы не посмотрим, что имеем в итоге, т.е. код.
Но не все спецы в этом деле, в том числе и я.
Сам код в Ардуино IDE тоже не отличается особой читабельностью, а о режимах и методах работы компилятора и выполнения инструкций в самом контролере я вообще только слышал.
Выход один - использовать сторонние библиотеки, ну и конечно учится понимать язык С++.
Изучение каждый понимает по своему, но к этому когда нибудь, да придёт почти каждый. (даже я в свои 46 пришёл)
Иногда, немного набравшись опыта, посмотришь код - куча ненужного, начинаешь убирать. Освобождается место в памяти, уменьшается сам объём программы...
А нашёл интереснейшую библиотеку.
Огромное СПАСИБО её разработчикам!!!
Сделал Пользоательские Блоки для нашей программы.
Результаты генератора с ООС ( отрицательной обратной связью), пин 2 и 12 соединены
Пока не забанили за флуд - продолжу.

Добавили быстрые входы - хорошо, ускорилось. Но.
Если мы уберём в полученном коде "лишние", промежуточные переменные, которые всегда возникают при использовании ПБ,
и приведём код от
Код: Выделить всё
IN_2 =D2_Read;
_out_12_ = !(IN_2);
if ( _out_12_ ) D12_High;
if ( ! _out_12_ ) D12_Low;
Код: Выделить всё
if ( !D2_Read ) D12_High;
if ( D2_Read ) D12_Low;
то получим 554 / 13 байт и 884,6 кГц!
Это ни в коем случае не значит, что программа с использованием этих блоков ускорится в 5-10 раз, т.к. в ней ещё присутствует много всего, но время выполнения цикла сократится однозначно!