А каких объяснений ты ждёшь, Дет вот продолжает стыренные миллисекунды внукам откладывать: uint32_t now = millis();
if (now - lastMSRead >= READ_INTERVAL) {
lastMSRead = now;
Tick();
}
Думаю кому надо, то поймёт.
Спасибо!![]()
Да и всех благодарю кто так или иначе принял участие в обсуждении!
Нормальный loop() - не более нескольких миллисекунд (ИМХО). Возможно и есть такой код, где необходимо долго “висеть”, но я такого не знаю.
А новички, они такие, что и +1000 может не помочь, если понаставляют делеев поболе…
Так что, как ни крути - надёжней всё-таки в прерывании обновлять время)))
вранье, сколько раз спрашивал а что не так, тупо игнор будет)))
не факт что будет работать когда код увеличится,(а может заново придется подбирать значения) и вы код полный не скинули вроде, видимо зашли просто потрещать)))
Потрещать я и так могу найти с кем. Да и нравится мне общение в живую.
Я предпочитаю сначала сам поломать голову прежде чем выслушать рекомендации и критику.
и что, они не хвастаются своими мнимыми достижениями,(причем не убедительно) еще и постоянно не хотят что то от вас ?)))
аааа, если так, то это нечего не объясняет, попробуйте не использовать делай)))
а то вовсе не понятно что вы хотите, тема уже есть, а вопроса вроде нет)))
еще проининициализируйте в начале переменные… столько сообщений, и все еще нельзя понять одназначно в чем у вас проблема)))
Сэр ни разу не выводил информацию на цветной графический экран с объемом видеопамяти под полмегабайта?
Это когда как. Универсального решения не существует.
Только нейтральные темы
Единственные кто что то от меня хотят, это жена и ребёнок, причём на регулярной основе
Я вообще стараюсь избегать его использовать
Я уже больше склоняюсь к накопившейся усталости.
Так то ты! Тебя учить традициями запрещено, только испортим. ![]()
Я на Уно/Нано таким не занимаюсь.)) Обновлять экран по 300мс - и кнопки норм. не обработаешь. Если есть такая задача - надо двигать в сторону старших МК(пока присматриваюсь) , - два ядра, DMA, частота повыше, и.т.п.
да и не нужен дисплей как правило, во всяких контроллерах нужна одна зелёная лампочка, что всё работает нормально и пару тройку красных, показать коды ошибок (не горит, горит, мигает)
Да, скажем , стабилизатор сетевого напряжения, может обойтись и одними св.диодами - надо лишь показать - какая ступень в работе, есть ли авария, и.т.п))
Сам по себе его код вроде не откладывает… Или я не понял? Вот если делей в loop() добавить - тогда да .
там больше/ равно, если больше при таком присвоении куда миллисы складывает, стыренные
Пральна! Это всё излишества буржуазные! Ящетаю, что морзянкой нужно сообщения выдавать. Не понял? - ну твои проблемы.
пи-пи-пи пипи-пипи-пипи пи-пи-пи ![]()
… тащемта обасс.. можно
void setup() {
Serial.begin(9600);
}
void loop() {
bool button = true;
bool in = false;
static bool Q = false;
if (button) {in = true; button = false;}
if(Button(in, 500) && !Q) {Q = true; in = false;}
if(Button(in, 500) && Q) {Q = false; in = false;}
Serial.print("Q: ");
Serial.println(Q);
delay(500);
}
bool Button (bool click, const unsigned &delay)
{
bool q = false;
if (click && (millis() >= delay)) {q = true;}
else if (!click) {q = false;}
return q;
}
На кодесисе таким образом обрабатываю кнопки. На ардуино еще не пробывал
Миллис для часов вовсе не предназначен, поэтому лишнее можно и по карманам натырить
абисняю! Тока налью сперва… бульк.
Так вот Радист наш большой поклонник циклов с постоянным интервалом.
При организации цикла та пишешь
либо oldMillis = currentMillis;
либо oldMillis += interval;
Это разные циклы. В первом случает МЕЖДУ обработками не меньше интервала, а во втором в идеале в каждом интервале вызовется обработчик.
Оба нужны, так как расход времени на пейлоад бывает разный, несинхронный и зависит от задачи. В данной задаче нужен был второй тип. И это доводит Радиста до оргазма ![]()
…
Радист! -Ты там только протри после себя, ОК?
еще понятнее, при длинной нагрузке на обработчик первый тип просто будет вызываться после нагрузки, а второй, если попался длинный пейлоад, после него вызовется все пропущенные разы подряд. Что иногда недопустимо. Я понятно сказал? А то сам себя не особо слышу
сорри.