Не совместимость защиты от дребезга и цикла платы
- electrobitstorm
- Рядовой
- Сообщения: 11
- Зарегистрирован: 14 сен 2015, 13:47
- Имя: Сергей
Не совместимость защиты от дребезга и цикла платы
Tему с ошибками Flprog (Bug Tracker) не смог найти, буду признателен, если модератор создаст такую... Или укажите мне пожалуйста куда в следующий раз стучаться.
Имеем простенький скетч (рис1), где вторая плата работает в цикле при переменной prog_mode = 1.
Из цикла её выключить кнопкой не получается. дело оказалось в защите от дребезга...
Если в настройке входа снять галочку защиты и на каждой плате использовать после выхода базовый блок Bounce, то всё работает как надо. (рис2) Это баг? думаю да, ведь проблемма не очевидна, и проявилась при использовании цикла платы.
Имеем простенький скетч (рис1), где вторая плата работает в цикле при переменной prog_mode = 1.
Из цикла её выключить кнопкой не получается. дело оказалось в защите от дребезга...
Если в настройке входа снять галочку защиты и на каждой плате использовать после выхода базовый блок Bounce, то всё работает как надо. (рис2) Это баг? думаю да, ведь проблемма не очевидна, и проявилась при использовании цикла платы.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2437
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 31 раз
Не совместимость защиты от дребезга и цикла платы
Не надо вам в такую тему. Здесь, в песочнице норм с такими "багами".electrobitstorm писал(а): 24 фев 2023, 12:09 Tему с ошибками Flprog (Bug Tracker) не смог найти, буду признателен, если модератор создаст такую...
[ref]electrobitstorm[/ref], Вы когда о чем то спрашиваете или утверждаете, прикладывайте проект пожалуйста.
Итак, по первому скрину.
Ваша переменная prog-mode, с таким подключением может переключаться только в true. А в плате по условию, только в false.
Как то все очень закручено. никак не могу понять логику того, что Вы хотите добиться.
Поясните пожалуйста основную идею на словах.
Отправлено спустя 20 минут 39 секунд:
Попробую пованговать.
Если Вы просто хотите включать выключать генератор, то плат по условию не нужно. Если требуется все-таки включать выключать с одной кнопки работу платы, то так. Для кнопки обязательно включайте подтяжку и инвертируйте выход блока "Вход", если конечно нет физической.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Не совместимость защиты от дребезга и цикла платы
При установке режима входа "защита от дребезга" генерируется код, который размещается в начале блока loop. Выход обработанных данных один для всего проекта. Считывание данных со входа - каждый раз в начале цикла.
При использовании блоков - необходимый код вставляется перед каждым входом. Сколько раз используется вход, столько раз будет происходить считывание входа мк и запускаться своя часть кода( со своими переменными) обработки дребезга.
При использовании блоков - необходимый код вставляется перед каждым входом. Сколько раз используется вход, столько раз будет происходить считывание входа мк и запускаться своя часть кода( со своими переменными) обработки дребезга.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- electrobitstorm
- Рядовой
- Сообщения: 11
- Зарегистрирован: 14 сен 2015, 13:47
- Имя: Сергей
Не совместимость защиты от дребезга и цикла платы
Dryundel, если бы всё так просто было... этот маленький скетч сделан мною, чтобы просто и наглядно было... (естественно я это использую в большом проэкте где 5плат и очень много ресурсоёмких блоков и скорость важна)
вторая плата должна работать в цикле (весь остальной скетч при этом останавливается) до смены переменной на ноль
Отправлено спустя 4 минуты 27 секунд: уберите блоки дребезга и поставьте галку у входа и почуствуйте разницу
вторая плата должна работать в цикле (весь остальной скетч при этом останавливается) до смены переменной на ноль
Отправлено спустя 4 минуты 27 секунд: уберите блоки дребезга и поставьте галку у входа и почуствуйте разницу
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2437
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 31 раз
Не совместимость защиты от дребезга и цикла платы
Ну хоть что то стало понятно. Сейчас сделаем...electrobitstorm писал(а): 24 фев 2023, 13:32 вторая плата должна работать в цикле (весь остальной скетч при этом останавливается) до смены переменной на ноль
- electrobitstorm
- Рядовой
- Сообщения: 11
- Зарегистрирован: 14 сен 2015, 13:47
- Имя: Сергей
Не совместимость защиты от дребезга и цикла платы
Sancho, я так понимаю, что при использовании Цикла while, в нем не должно ломаться обработка защиты от дребезга входа, он ведь по смыслу должен работать на всё программу, а она ломается
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
Не совместимость защиты от дребезга и цикла платы
Банальная установка конденсатора неприемлема?
Или это дело принципа?

Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Не совместимость защиты от дребезга и цикла платы
Как я уже писалelectrobitstorm писал(а): 24 фев 2023, 13:48 Sancho, я так понимаю, что при использовании Цикла while, в нем не должно ломаться обработка защиты от дребезга входа, он ведь по смыслу должен работать на всё программу, а она ломается
Поэтому в цикле платы Вы никогда не узнаете о нажатой кнопке.Sancho писал(а): 24 фев 2023, 13:27 При установке режима входа "защита от дребезга" генерируется код, который размещается в начале блока loop. Выход обработанных данных один для всего проекта. Считывание данных со входа - каждый раз в начале цикла.
Обсуждалось уже, один раз точно!
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- Dryundel
- Полковник
- Сообщения: 2437
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 31 раз
Не совместимость защиты от дребезга и цикла платы
[ref]electrobitstorm[/ref], да, это в принципе можно назвать багом. Санчо правильно сказал.
.
Отправлено спустя 1 минуту 12 секунд:
И так для каждого входа. Даже если это отдельный вход(кнопка) и используется только в цикле.Sancho писал(а): 24 фев 2023, 13:27 При установке режима входа "защита от дребезга" генерируется код, который размещается в начале блока loop.
.
В цикл while этот код не попадает, т.к. находится в Loop. Надо что то придумывать с функцией.electrobitstorm писал(а): 24 фев 2023, 13:48 я так понимаю, что при использовании Цикла while, в нем не должно ломаться обработка защиты от дребезга входа
Отправлено спустя 1 минуту 12 секунд:
О нажатой кнопке то узнаем. А вот про таймер дребезга увы нет.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Не совместимость защиты от дребезга и цикла платы
Обсуждали тут
Добавлю. Используйте блок bounce, как Вы и сделали, он будет на этой-же плате, и вход ноги мк будет считываться именно в этом месте, а не перед первой платой.
Добавлю. Используйте блок bounce, как Вы и сделали, он будет на этой-же плате, и вход ноги мк будет считываться именно в этом месте, а не перед первой платой.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- Dryundel
- Полковник
- Сообщения: 2437
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 31 раз
Не совместимость защиты от дребезга и цикла платы
Надо либо прописывать этот кусок в while, либо что то с функцией для антидребезга придумывать.
Отправлено спустя 6 минут 57 секунд:
[ref]electrobitstorm[/ref], а пока могу предложить следующее.
При компиляции скопировать вот такой кусок кода из начала секции Loop и вставить его в начало (можно и в конец) цикла while для платы.
[spoiler][/spoiler]
Отправлено спустя 6 минут 57 секунд:
[ref]electrobitstorm[/ref], а пока могу предложить следующее.
При компиляции скопировать вот такой кусок кода из начала секции Loop и вставить его в начало (можно и в конец) цикла while для платы.
[spoiler]
Код: Выделить всё
bool _bounceInputTmpD2 = (digitalRead (2));
if (_bounseInputD2S)
{
if (millis() >= (_bounseInputD2P + 40))
{
_bounseInputD2O= _bounceInputTmpD2;
_bounseInputD2S=0;
}
}
else
{
if (_bounceInputTmpD2 != _bounseInputD2O)
{
_bounseInputD2S=1;
_bounseInputD2P = millis();
}
}
- electrobitstorm
- Рядовой
- Сообщения: 11
- Зарегистрирован: 14 сен 2015, 13:47
- Имя: Сергей
Не совместимость защиты от дребезга и цикла платы
Sancho, Dryundel, вот я и пару часов потратил, чтобы это понять.. А ведь Flprog (сделана не для программистов
должна этот момент учитывать... значит в программе нужно дописать, что при использовании цикла все входы, которые используются в цикле, и имеют программную защиту от дребезга, надо ещё раз добавлять bounce (или в справке хотя-бы добавить) иначе ещё не одна тема появится...

- Dryundel
- Полковник
- Сообщения: 2437
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 31 раз
Не совместимость защиты от дребезга и цикла платы
FLProg для будущих программистов!electrobitstorm писал(а): 24 фев 2023, 15:03 вот я и пару часов потратил, чтобы это понять.. А ведь Flprog (сделана не для программистов

Отправлено спустя 1 минуту 46 секунд:
[ref]electrobitstorm[/ref], И может быть как то попроще с проектом? Типа так.
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- electrobitstorm
- Рядовой
- Сообщения: 11
- Зарегистрирован: 14 сен 2015, 13:47
- Имя: Сергей
Не совместимость защиты от дребезга и цикла платы
Так не будет работать... выбрвться из while не получается... только если добавить bounce/
а с таймерами и доп диодами сделано, чтобы наглядней было.. это не проект, а для демонстрации
а с таймерами и доп диодами сделано, чтобы наглядней было.. это не проект, а для демонстрации
- Dryundel
- Полковник
- Сообщения: 2437
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 31 раз
Не совместимость защиты от дребезга и цикла платы
Для того чтобы работало надо скопировать код в while, как я писал выше.electrobitstorm писал(а): 24 фев 2023, 15:40 Так не будет работать... выбрвться из while не получается... только если добавить bounce/
Или добавить блоки bounce перед триггерами и выключить дебонс в блоке входа, как писал Sancho.
Любой из этих вариантов будет работать.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя