Подсчёт секунд с помощью millis()

А каких объяснений ты ждёшь, Дет вот продолжает стыренные миллисекунды внукам откладывать: uint32_t now = millis();
if (now - lastMSRead >= READ_INTERVAL) {
lastMSRead = now;
Tick();
}

Думаю кому надо, то поймёт.

Спасибо!:+1:

Да и всех благодарю кто так или иначе принял участие в обсуждении!

Нормальный loop() - не более нескольких миллисекунд (ИМХО). Возможно и есть такой код, где необходимо долго “висеть”, но я такого не знаю.
А новички, они такие, что и +1000 может не помочь, если понаставляют делеев поболе…
Так что, как ни крути - надёжней всё-таки в прерывании обновлять время)))

вранье, сколько раз спрашивал а что не так, тупо игнор будет)))

не факт что будет работать когда код увеличится,(а может заново придется подбирать значения) и вы код полный не скинули вроде, видимо зашли просто потрещать)))

Потрещать я и так могу найти с кем. Да и нравится мне общение в живую.

Я предпочитаю сначала сам поломать голову прежде чем выслушать рекомендации и критику.

и что, они не хвастаются своими мнимыми достижениями,(причем не убедительно) еще и постоянно не хотят что то от вас ?)))

аааа, если так, то это нечего не объясняет, попробуйте не использовать делай)))
а то вовсе не понятно что вы хотите, тема уже есть, а вопроса вроде нет)))
еще проининициализируйте в начале переменные… столько сообщений, и все еще нельзя понять одназначно в чем у вас проблема)))

Сэр ни разу не выводил информацию на цветной графический экран с объемом видеопамяти под полмегабайта?

Это когда как. Универсального решения не существует.

Только нейтральные темы

Единственные кто что то от меня хотят, это жена и ребёнок, причём на регулярной основе

Я вообще стараюсь избегать его использовать

Я уже больше склоняюсь к накопившейся усталости.

Так то ты! Тебя учить традициями запрещено, только испортим. :wink:

Я на Уно/Нано таким не занимаюсь.)) Обновлять экран по 300мс - и кнопки норм. не обработаешь. Если есть такая задача - надо двигать в сторону старших МК(пока присматриваюсь) , - два ядра, DMA, частота повыше, и.т.п.

да и не нужен дисплей как правило, во всяких контроллерах нужна одна зелёная лампочка, что всё работает нормально и пару тройку красных, показать коды ошибок (не горит, горит, мигает)

Да, скажем , стабилизатор сетевого напряжения, может обойтись и одними св.диодами - надо лишь показать - какая ступень в работе, есть ли авария, и.т.п))

Сам по себе его код вроде не откладывает… Или я не понял? Вот если делей в loop() добавить - тогда да .

там больше/ равно, если больше при таком присвоении куда миллисы складывает, стыренные

Пральна! Это всё излишества буржуазные! Ящетаю, что морзянкой нужно сообщения выдавать. Не понял? - ну твои проблемы.

пи-пи-пи пипи-пипи-пипи пи-пи-пи :rofl:
… тащемта обасс.. можно

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;
Это разные циклы. В первом случает МЕЖДУ обработками не меньше интервала, а во втором в идеале в каждом интервале вызовется обработчик.
Оба нужны, так как расход времени на пейлоад бывает разный, несинхронный и зависит от задачи. В данной задаче нужен был второй тип. И это доводит Радиста до оргазма :wink:
…
Радист! -Ты там только протри после себя, ОК?


еще понятнее, при длинной нагрузке на обработчик первый тип просто будет вызываться после нагрузки, а второй, если попался длинный пейлоад, после него вызовется все пропущенные разы подряд. Что иногда недопустимо. Я понятно сказал? А то сам себя не особо слышу :wink: сорри.