Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
Добавить блок Increment/Decrement переменной.
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
Вопрос снят. Блок прикрепил.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
модеры, соберите по возможности самодельные блоки и перенесите их в раздел соответствующий( например ,загрузки-блоки пользователей, а тут только ссылки на них оставляйте)
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
kossn93, для того что бы их перенести, надо убедится в их работоспособности. А для этого нужно тестировать и голосовать за тему в которой описывается блок.
Я могу этот блок перенести в загрузки. Но вдруг он глючный. Вдруг я где то ошибся.
Поэтому кому надо, тестируйте, голосуйте и отписывайтесь что блок рабочий. Потом перенесем конечно.
Я могу этот блок перенести в загрузки. Но вдруг он глючный. Вдруг я где то ошибся.
Поэтому кому надо, тестируйте, голосуйте и отписывайтесь что блок рабочий. Потом перенесем конечно.
- brig62
- Лейтенант
- Сообщения: 469
- Зарегистрирован: 13 май 2016, 16:37
- Откуда: Казань
- Имя: Игорь
- Благодарил (а): 1 раз
Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
Столкнулся в проекте с необходимостью использования данного блока. Проверить пока не могу. Правильно я его подключил?
Добавлено (24.12.2017, 01:04)
---------------------------------------------
Вопрос снимаю. Буду использовать командоаппарат.
Добавлено (24.12.2017, 01:04)
---------------------------------------------
Вопрос снимаю. Буду использовать командоаппарат.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Лейтенант
- Сообщения: 539
- Зарегистрирован: 06 сен 2015, 07:09
- Откуда: Курган
Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
И все же лучше стандартный такой блок, тем более его реализация явно не будет сложной (код для него займет строчку где то
).

-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
А смысл в таком блоке если все решается элементарной математикой?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Лейтенант
- Сообщения: 539
- Зарегистрирован: 06 сен 2015, 07:09
- Откуда: Курган
Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
Экономией памяти. все же i++ меньше отъесть нежели код описанный выше. хотя кто его знает.Naladchik писал(а): 09 сен 2018, 20:07А смысл в таком блоке если все решается элементарной математикой?
Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
Для нажатия кнопки 1 секунда- мало, а для выполнения кода несколько десятков/сотен циклов. Сколько насчитает математика? Тут нужен контроль предыдущего состояния, опрос по времени и иногда контроль времени пребывания в активном состоянии (устойчивом/устранение дребезга контактов). Получится довольно длинная строчка кодаNaladchik писал(а): 09 сен 2018, 20:07А смысл в таком блоке если все решается элементарной математикой

Тогда на мой взгляд минимальная конфигурация из штатных блоков [spoiler title= принимает вид] [/spoiler] Для кругового изменения переменной нужно вывести на счётчике достижение установленного значения и сброс, для управления кнопками добавить блок Bounce. Это теоретический пример, в железе не проверял и в какой последовательности расставит блоки FLProg тоже.
А готовые блоки уже давно есть и на FBD и Code, например здесь, или здесь или здесь. Хотелка древняя.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
по поводу памяти, особенно в проектах FLProg - смешно. тут она и без этого используется, мягко говоря, не оптимально. Чего стоят задвоение переменных при использовании пользовательских блоков да и и использование int там где вполне хватает byte и Long там где хватило бы Uint. Да не будем о грустном.Oleg1345140 писал(а): 09 сен 2018, 23:01Экономией памяти. все же i++ меньше отъесть нежели код описанный выше
Ну а что касается кода, то
_gtv1 = (_gtv1)+(1);
по сути тоже самое что и i++; т.е просто математика, это если убрать у переменной разрешение записи
[spoiler] [/spoiler]
Разница так уж принципиальна? По моему одно и тоже. Мне кажется, что компилятор со мной согласится.
"...большинство современных компиляторов языка Си уже без проблем сами заменяют арифметические выражения x = x + 1 или x += 1 на низкоуровневый инкремент (++x) на этапе оптимизации и компиляции." - Wiki
if (_gtv2) {_gtv1 = (_gtv1)+(1);}
а тут используется переменная с разрешением записи.
[spoiler] [/spoiler]
Пока будет разрешение записи - будет считать (один цикл программы - одна операция инкремента), нет разрешения - нет счета.
А тут уже по обстоятельствам, может несколько а может и ни одной.
Вот такой вариант. 452 и 11 байт. А использовать еще и счетчик для хранения значения, которое и так хранится в переменной это, на мой взгляд, избыточно.
Особенно в свете "...Экономии памяти..."

P.S. Никто так и не сказал а для чего нужны такие навороты? Начали то с простейших инкремента и декремента.
Отправлено спустя 13 минут 39 секунд:
Сброс при достижении значения делать не стал, если кому нужно то компаратор прилепить секундное дело.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Naladchik 10 сен 2018, 11:01, всего редактировалось 8 раз.
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
Или так. Круговой счетчик.Labu559 писал(а): 10 сен 2018, 00:42Для кругового изменения переменной нужно вывести на счётчике достижение установленного значения и сброс
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
А вообще я уже давно предлагал Сергею модернизировать стандартный счетчик и добавить все эти навороты (хотя бы что бы было два выхода "достижение установленного значения") да видать все руки у него не дойдут до этой мелочи.
Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
Да, и я о том же. Исходя из этого нам нужно считать/инкреминировать/декреминировать не циклы программы, пока одна из переменных increment или decrement пребывает в HIGH, а отсчитывать / инкреминировать/декреминировать колличество этих команд или нажатий кнопок от переменной Value.Naladchik писал(а): 10 сен 2018, 10:16Пока будет разрешение записи - будет считать (один цикл программы - одна операция инкремента), нет разрешения - нет счета.
Применение счётчика напрямую связано сNaladchik писал(а): 10 сен 2018, 10:16А использовать еще и счетчик для хранения значения, которое и так хранится в переменной это, на мой взгляд, избыточно.
Особенно в свете "...Экономии памяти...
который в нём уже присутствует- смотрим код счётчика. Если будет удержание указанных выше переменных/кнопок в HIGH, независимо от колличества циклов Loop, будет инкремент/декремент на 1.
К сожалению в отчётах Arduino IDE от нас ускользает колличество инструкций процессора, что не менее важно чем объёмы используемых типов памяти, но это уже дебри.

Базовый счётчик, на мой взгляд (хотя я тоже предлагал ув. Автору его модернизировать в ином, правда, плане) вполне самодостаточен. А то что предлагаете Вы, [spoiler title= легко реализуется с помощью внешних елементов (обведено рамкой).] [/spoiler]Naladchik писал(а): 10 сен 2018, 11:06предлагал Сергею модернизировать стандартный счетчик и добавить все эти навороты (хотя бы что бы было два выхода "достижение установленного значения")
Спасибо за интересный диалог!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
[spoiler] [/spoiler]Labu559 писал(а): 10 сен 2018, 16:08легко реализуется с помощью внешних елементов (обведено рамкой).
А вы его в работе проверяли? по моему тут с логикой у Вас явный непорядок. При каждой команде increment/decrement Вы предустанавливаете значение счетчика max/min.
Далее, на вход счетчика "пороговое значение" Вы подаете через промежуточную переменную значение его (счетчика) выхода?

Хотя общую идею я понял.
Но вот сам факт присваивания переменной Value значения счетчика и получение двух глобальных переменных с одним и тем же значением крайне не приветствую.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Naladchik 10 сен 2018, 17:40, всего редактировалось 4 раза.
Добавить блок увеличения/уменьшения переменной на 1 (+1, -1)
если можно так сказать, да. Просто применял описаный алгоритм без кольцевого счёта в своём проекте, НО!!!
Вы совершенно правы на счёт кольцевого счёта, вход SP должен остаться не подключённым. С кольцевым счётчиком я поспешил, с наскока и без утяжеления , и короче чем у ув. Boroda в 6-м сообщении пока не получилось. Попробовал симулировать в Протеусе. Без кольца проект успешный, в кольцевом засада в плане отрицательных чисел, но я кажется понял что Вы имели ввиду под
И вспомнил что где-то проходило сообщение ув. Sancho об разных условиях сравнения в счётчике < и >= при счёте отрицательных чисел и положительных. Спасибо Вам за тренировку мозга.
P.S. Если это Вы на форуме Казуса о Протеусе, то именно с Вашей публичной рекоммендации я начал знакомство с FLProg.

(Поставил себе задачу в плане обучения- использовать только свои ПБлоки, счётчики тоже использую свои с моими собственными недостатками

Последний раз редактировалось Labu559 11 сен 2018, 10:49, всего редактировалось 1 раз.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость