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