Битовые переменные.
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
Битовые переменные.
Не хотел поднимать новую тему, но через поиск не нашёл упоминаний. Для простейшей логики используются переменные типа boolean, каждая из которых занимает байт в памяти. На самом деле в байт можно поместить 8 битовых переменных (ни для кого не секрет). Проблема в том, что для работы с битами (сложение, вычитание, инверсия и т. д.) приходится преобразовывать их снова в boolean. Создать пользовательские блоки не представляется возможным, так как скомпилированный результат должен должен быть соединением нескольких частей в одну строку. Простейший пример применения: имеем входной байт, полученный с 8 входов регистра, и выходной байт, отправленный через выходной регистр на 8 выходов. Выходной байт получается преобразованием входного байта в соответствии с заданной логикой работы. Как задать подобное для примеров на рисунке? (Только вместо пинов должны быть два бита входного байта и один бит выходного. На картинке одна и та же операция для разных языков программирования, лично мне удобней LAD.) Поднималась ли такая тема на форуме? Возможно ли создать блоки?
Спросите: зачем это нужно? Во-первых, для общего развития. Во-вторых, связался в последнее время с ATtiny13A - прикольный маленький контроллер с 1 килобайтом памяти. Проекты прекрасно создаются в FLProg (просто подставляется другой тип контроллера). После компилирования уже в IDE выбирается ATtiny13A, и заливается скетч по способу, описанному здесь: https://ngin.pro/arduino/299-obnovlenno ... o-ide.html Для простеньких проектов не требуется никаких лишних движений, работают любые блоки, содержащие в себе простейшие операторы типа pinMode(), digitalRead(), digitalWrite() и ещё несколько, а также программирование на Си. Но уже для чуть больших проектов, чем помигать светиком, нужно оптимизировать полученный скетч, убирая промежуточные переменные. Ну и доступно только 64 байтовых переменных, что не так много.
Спросите: зачем это нужно? Во-первых, для общего развития. Во-вторых, связался в последнее время с ATtiny13A - прикольный маленький контроллер с 1 килобайтом памяти. Проекты прекрасно создаются в FLProg (просто подставляется другой тип контроллера). После компилирования уже в IDE выбирается ATtiny13A, и заливается скетч по способу, описанному здесь: https://ngin.pro/arduino/299-obnovlenno ... o-ide.html Для простеньких проектов не требуется никаких лишних движений, работают любые блоки, содержащие в себе простейшие операторы типа pinMode(), digitalRead(), digitalWrite() и ещё несколько, а также программирование на Си. Но уже для чуть больших проектов, чем помигать светиком, нужно оптимизировать полученный скетч, убирая промежуточные переменные. Ну и доступно только 64 байтовых переменных, что не так много.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
Битовые переменные.
А что ответят админы? У вас вроде х опыта больше. Это неосуществимо или просто не нужно?
Битовые переменные.
в создании блоков нет смысла. ибо входа и выхода блоков это те же переменные, каждая из которых занимает байт
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Битовые переменные.
[ref]seri0shka[/ref],
Вот так [spoiler] [/spoiler]
Вот так [spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
Битовые переменные.
А если так:
Отправлено спустя 21 минуту 58 секунд:
[ref=#ff8000]Sancho[/ref], что за блок "bitwise OR" ? Я в LAD намного лучше разбираюсь, извините.
Блок "битовая арифметика" пока пуст. Вместо 16 промежуточных переменных получаем 2. Но вот дальше у меня проблемы, битовые операции- как китайский язык.Отправлено спустя 21 минуту 58 секунд:
[ref=#ff8000]Sancho[/ref], что за блок "bitwise OR" ? Я в LAD намного лучше разбираюсь, извините.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Битовые переменные.
[ref]seri0shka[/ref],
Это побитовое ИЛИ.
Операции с битами-> побитовые операции...
Это побитовое ИЛИ.
Операции с битами-> побитовые операции...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
Битовые переменные.
Понял, просто не мог найти в версии 2-1.
Скажите, а это только на моём компе не удаляются соединения? В языке LAD всё нормально, а в FBD не удаляются в версии 2-1 и 2-3. приходится блок удалять и снова добавлять.
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Битовые переменные.
[ref]seri0shka[/ref], не знаю, у меня всё нормально. 3.0.3seri0shka писал(а): 09 апр 2018, 14:31Скажите, а это только на моём компе не удаляются соединения? В языке LAD всё нормально, а в FBD не удаляются в версии 2-1 и 2-3. приходится блок удалять и снова добавлять.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- kulibinsvv
- Лейтенант
- Сообщения: 487
- Зарегистрирован: 18 сен 2015, 10:04
- Откуда: Омск
- Благодарил (а): 3 раза
- Поблагодарили: 5 раз
Битовые переменные.
Если соединены только два вывода, достаточно щёлкнуть два раза ЛКМ по линии возле вывода блока.
Если соединены более двух выводов, то наводим курсор на линию возле вывода, зажимаем ЛКМ и тянем курсор в сторону, отпускаем ЛКМ.
ЛКМ - левая кнопка мыши.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
Битовые переменные.
[ref]kulibinsvv[/ref], спасибо. Только не по линии, а по входу блока, получается. Надо же, как по-разному в LAD и FBD.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость