Работоспособность фрагмента кода
- Войдите на сайт для отправки комментариев
Чт, 12/11/2020 - 13:56
Подскажите пожалуйста, кто знает. Будет ли работать это:
unsigned long d_time;
boolean _delay()
{
d_time=millis();
if((millis()-d_time)=>5)
{
return true;
}
}
void somefunction()
{
while(!_delay())
{
}
}
Смысл задержать выполнение somefunction() на некоторое время.
Сочувствую! Видимо аденоиды в детстве вырезали ...необычным способом?
Нет, не будет
А какой обычный способ посоветуете Вы?
void somefunction() { delay(скоканадо); остальные операторы задержанные на "скоканадо"; }delay() - встроенная функция
А какой обычный способ посоветуете Вы?
Брось её совсем, игрушку эту бесовскую! Ни к чему она русскому человеку! ;)))))
------------------------------
Ну а если свербит шаловливый ум, то ответь, выполнится ли, ХОТЬ КОГДА НИБУДЬ, условие в строке 6? ;)))
Смысл задержать выполнение somefunction() на некоторое время.
а смысл делать свою функцию, если она ничем не отличается от стандартной delay() ? :)
В процессе действия delay() такие операции, как считывание данных с датчиков, математические вычисления или операции с выводами не могут выполняться. Фактически, функция delay() приводит к остановке практически всех операций.-цитата отсюда:https://doc.arduino.ua/ru/prog/Delay
Да, накосячил), так правильно
unsignedlongd_time;0203boolean _delay()04{05d_time=millis();06if((millis()-d_time)>=5)07{08returntrue;09}10}1112voidsomefunction()13{14while(!_delay())15{16}17}А принципиальные возражения есть?
;)))))))
Ысчо рас:
Вот в такой последовательности действий условие может ли выполниться, ХОТЬ КОГДА-ТО? ;))))
так правильно
Нет, так неправильно.
А принципиальные возражения есть?
Нет.
Вот представьте себе я издаю бессвязные звуки тип "аы..ел..ххх...фш". У Вас есть принципиальные возражения?
Нет и не может быть никаких принципиальных возражений против болезненного бреда.
В процессе действия delay() ...
И что?
А в процессе действия той функции, что Вы пытаетесь написать, оно как-то по-другому? И как?
Всем спасибо!
В процессе действия delay() такие операции, как считывание данных с датчиков, математические вычисления или операции с выводами не могут выполняться. Фактически, функция delay() приводит к остановке практически всех операций.-цитата отсюда:https://doc.arduino.ua/ru/prog/Delay
если вы думаете, что во время вашей функции что-то из этого выполняется - вы вовсе ничего не понимаете в программировании
Кстати, ошибка та же самая, что была в библиотеке гиверфильтр.
Кстати, ошибка та же самая, что была в библиотеке гиверфильтр.
"... и по рукам кочуешь ты..." это я об ошибке...
1. запомнить время перед вызовом функции и выставить флаг, что надо отработать процедуру
2. периодически вызывать процедуру, где вначале проверяется флаг и время, что пора выполнять
3. если условия выполняются, выполнить процедуру, сбросить флаг
"... и по рукам кочуешь ты..." это я об ошибке...
А ведь казалось бы, чего ей кочевать? О ведь ней компилятор просто криком предупреждает! Но мы ж всяких глупостей не читаем - скомпилировалось, и ладно.
А у меня ещё вопрос к ТС: что возвращает _delay(), какое значение?
Поздно, sadman41, ТС уже обиделся, так что вопросы задавать поздно, на нём теперь только воду возить.