Три сигнала семафора
Три сигнала семафора
Всем доброго дня. С помощью примеров в данной теме собрал пользовательский блок мигания светодиодом на 1, 2 , 3 вспышки в секунду и каждые 0,5 секунды. В проекте есть необходимость в зависимости от режима работы, иметь три режима индикации светодиодом. По одному блоки работают нормально, а два, или три вместе не хотят. Разобраться в причине не в силах. Буду благодарен за помощь.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Создание пользовательского блока из скетча(примера)
Объявляйте переменные по одной, а не через запятую. Есть такой нюанс (недочет) в FLProg. Базовый редактор забывает присваивать идентификаторы к переменным, объявленным через запятую.bykos писал(а): 04 дек 2021, 20:20 По одному блоки работают нормально, а два, или три вместе не хотят. Разобраться в причине не в силах. Буду благодарен за помощь.
Типа так:
uint32_t ms;
uint32_t ms1= 0;
uint32_t ms2 = 0;
Создание пользовательского блока из скетча(примера)
Спасибо за помощь. Все заработало.
Как все просто когда знаешь в чем дело.
Как все просто когда знаешь в чем дело.
Создание пользовательского блока из скетча(примера)
К сожалению счастье было не долгим. Во время работы блока, при подаче 0 на вход блока одновременно с наличием 0 на выходе блока, светодиод тухнет. А при наличии 1 на выходе нет. В какой-то теме была написана команда на принудительное гашение, помню видел. Перелопатил все, два дня искал, не нашел. Кто на память помнит, подскажите.
"Первые шаги"
Всем доброго дня. Собрал ПБ на 3 вспышки светодиода. В процессе работы проекта возникла "неприятность". При появлении 0 на входе En в момент когда светодиод не горит, блок отключается и при следующей подачи 1 на вход работает сначала цикла, то есть дает 3 вспышки. При 0 на входе в момент вспышки блок зависает и светодиод горит. При подаче 1 на вход продолжает цикл с момента "зависания" и может дать одну или две вспышки в зависимости от момента когда завис. Не могу понять как его заставить сбросить цикл на начало при 0 на входе.
Помогите кто может
Помогите кто может
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
"Первые шаги"
Это вполне закономерно. Условие по переменной En обуславливает выполнение кода внутри данного условия. Когда En=0, весь этот код пропускается и все обрабатываемые в нем переменные, перестают изменяться.
Необходимо добавить к условию "Иначе", где и прописать что станет с переменными если En=0.
Код: Выделить всё
if (En)
{
//Ваш код.
}
else
{
//Сброс выходных переменных и переменных счетчиков.
}
Отправлено спустя 4 минуты 9 секунд:
[ref]bykos[/ref], пожалуйста, не дублируйте свои вопросы в разных темах. Это запрещено правилами форума.
Создание пользовательского блока из скетча(примера)
Спасибо за ответ. Но к сожалению моих знаний не хватает чтобы понять что значит "сброс выходных переменных и переменных счетчиков" и как это выразить в коде
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Создание пользовательского блока из скетча(примера)
Упс...bykos писал(а): 09 дек 2021, 12:17 Спасибо за ответ. Но к сожалению моих знаний не хватает чтобы понять что значит "сброс выходных переменных и переменных счетчиков" и как это выразить в коде
Вероятно объяснить Вам все это будет совсем не просто. Вы взяли достаточно сложный пример для весьма простой задачи. Вероятно фразы: операции с битами и битовая маска для Вас китайская грамота, а код вашего блока основан именно на этом. Попробуйте начать с чего то попроще или попытайтесь создать алгоритм мигания светодиодом с помощью штатных средств FLProg.
В первых строчках данной темы я писал:
Для начала почитайте темы:Dryundel писал(а): 23 сен 2021, 12:13 Прежде всего хочу сказать, что для грамотного переноса скетча (кода, примера) в блок необходимо обладать базовыми знаниями языка С++.
Редактирование пользовательского блока.
Создание пользовательского блока (Code-Basic) простым языком.
Создание пользовательского блока из скетча(примера)
Согласен, что "взял достаточно сложный пример для весьма простой задачи". Но других примеров с таким результатом к сожалению не нашел. Да, может плохо искал, но что есть то есть. Прочитал обе темы, но сопоставить с моим вопросом так и не смог, к сожалению.
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Создание пользовательского блока из скетча(примера)
[ref]bykos[/ref],
Dryundel писал(а): 09 дек 2021, 14:26 попытайтесь создать алгоритм мигания светодиодом с помощью штатных средств FLProg.
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 14 раз
- Поблагодарили: 100 раз
- Контактная информация:
Создание пользовательского блока из скетча(примера)
Никто не посылал... Коды не формат нашего форума, нужно обращаться в Ардуино.ру.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Три сигнала семафора
[ref]bykos[/ref],
Вы пришли к нам изучать визуальное программирование? Добро пожаловать!
Языку С++ не кто Вас здесь обучать не будет.
Ваш пример делается встроенными блоками FLProg.
Вы пришли к нам изучать визуальное программирование? Добро пожаловать!
Языку С++ не кто Вас здесь обучать не будет.
Ваш пример делается встроенными блоками FLProg.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
Три сигнала семафора
Спасибо за приглашение. Прислушался к вашему совету, и решил попробовать. Получилось как мне кажется довольно простая плата. Причем с массой вариантов от 1 вспышки до ...... меняя лишь время задержки в "GA-M" и "TOF" Осталось запихнуть это в ПБ. А до вашего примера мне пока еще далеко .
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Три сигнала семафора
поставьте в "GA-M" импульс 1700, паузу 600 и "TOF" можно убрать.
Win10-64, FLProg (portable)
Три сигнала семафора
Спасибо за подсказку. Чудесно работают три блока с разными значениями "импульс-пауза" на одной плате и не мешают друг другу
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей