Не хотел поднимать новую тему, но через поиск не нашёл упоминаний. Для простейшей логики используются переменные типа boolean, каждая из которых занимает байт в памяти. На самом деле в байт можно поместить 8 битовых переменных (ни для кого не секрет). Проблема в том, что для работы с битами (сложение, вычитание, инверсия и т. д.) приходится преобразовывать их снова в boolean. Создать пользовательские блоки не представляется возможным, так как скомпилированный результат должен должен быть соединением нескольких частей в одну строку. Простейший пример применения: имеем входной байт, полученный с 8 входов регистра, и выходной байт, отправленный через выходной регистр на 8 выходов. Выходной байт получается преобразованием входного байта в соответствии с заданной логикой работы. Как задать подобное для примеров на рисунке? (Только вместо пинов должны быть два бита входного байта и один бит выходного. На картинке одна и та же операция для разных языков программирования, лично мне удобней LAD.) Поднималась ли такая тема на форуме? Возможно ли создать блоки?
- биты.png (4.18 КБ) 1277 просмотров
Спросите: зачем это нужно? Во-первых, для общего развития. Во-вторых, связался в последнее время с ATtiny13A - прикольный маленький контроллер с 1 килобайтом памяти. Проекты прекрасно создаются в FLProg (просто подставляется другой тип контроллера). После компилирования уже в IDE выбирается ATtiny13A, и заливается скетч по способу, описанному здесь:
https://ngin.pro/arduino/299-obnovlenno ... o-ide.html Для простеньких проектов не требуется никаких лишних движений, работают любые блоки, содержащие в себе простейшие операторы типа pinMode(), digitalRead(), digitalWrite() и ещё несколько, а также программирование на Си. Но уже для чуть больших проектов, чем помигать светиком, нужно оптимизировать полученный скетч, убирая промежуточные переменные. Ну и доступно только 64 байтовых переменных, что не так много.