Официальный сайт компании Arduino по адресу arduino.cc
Таймер обратного отсчёта до *0*, нужна ваша помощь
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ср, 18/07/2018 - 19:01
Собрал таймер на 60 мин, активируется кнопкой старт, можно сбросить на ноль, и он начнёт считать заново, есть стоп. Считает от 0 и до 60. А предел счастья по умолчанию 01 00 00 , т е обратный отсчёт.
void timerstart_1() { if (digitalRead(7) == LOW || digitalRead(oneStartTimer_Pin) == HIGH ) { time_start_1 = millis(); } on_state_1 = !on_state_1; if (k_1 > 10) { time_hrs_1 = 0; time_sec_1 = 0; time_min_1 = 0; k_1 = 0; if (on_state_1 == HIGH) { ms_1 = millis()-time_start_1; } time_sec_1 = ms_1 / 1000; if (time_sec_1 > 59) //вычисляем минуты { time_min_1 = time_sec_1 / 60; // в минуте 60 секунд time_sec_1 = time_sec_1 % 60; //остаток переписываем в секунды } if (time_min_1 > 59) //вычисляем часы { time_hrs_1 = time_min_1 / 60; // в часе 60 минут time_min_1 = time_min_1 % 60; //остаток переписываем в минуты } } k_1++; Timers(); // для последующей обработки для индикации }
Пробовал k_1--;
и
time_hrs_1 = 1;
time_sec_1 = 0;
time_min_1 = 0;
при
к = 3600000
Одинаково считает в плюс
ну а какой смысл уменьшать K_1. если его значение в таймере не используется? Часы. минуты и секунды вы считаете по миллис - а миллис-то всегда растет :)
Вообще. сравнивая "ваш" код и ваши комментарии к нему - я абсолютно уверен. что код вы где-то своровали и ровно ни черта в нем не понимаете.
Если б вы и правда сами "собрали" этот таймер. изменить его на обратный отчет не составило бы вам труда. Врать стыдно.
Я и не говорил, что сам написал, вы опять за зря нападаете, добавитл только копку и общий сброс, там этого не было изюминка k++ не моя, но идея мне понравилась
изюминка k++ не моя, но идея мне понравилась
в чем же тут "изюминка"? - переменную К_1 вообще можно выкинуть без ущерба для остального кода - она ничего не делает
Я и не говорил, что сам написал, вы опять за зря нападаете, добавитл только копку и общий сброс
newold - зачем вы беретесь переделывать код, который не понимаете? вы сначала разберитесь, как он работает. прежде чем начинать что-то менять.
Этот код явно для вас слишком сложен и вопросы вам задавать пока рано. А то вот в соседней ветке я вам подсказал. как сделать ваши 1-3-1-3 .... а Вы даже не смогли понять ответа.
Да вы что?, А если независимых таймеров три они между собой старт сстопом привязаны, зачем мне считаь время включения и до упора, без функций через милис, видите в чём то я разбираюсь, если разбирался хорошо, вы ж понимаете что я сюда и не писал бы. А так я вам вопрос, а вы мне два, в чём помощь не знаю.... Да я переделал, он отлично работает, но не так как хотелось бы.
Да вы что?, А если независимых таймеров три они между собой старт сстопом привязаны, зачем мне считаь время включения и до упора, без функций через милис, видите в чём то я разбираюсь
я пока вижу. что вы несете что-то нечленораздельное.
Давайте так - если сможете внятно рассказать, что делает в этом коде K_1 - продолжим. Иначе я пас.
Переменная *К* целое число, каждый раз по счёту миллис, или 1сек, изменяет своё значение, на +1. Удобна тем , что её можно остановить обнулить предать нужное пользователю значение, также на одном миллисе можно подставить несколько *К* и работать с ними не зависимо
Переменная *К* целое число, каждый раз по счёту миллис, или 1сек, изменяет своё значение, на +1.
укажите номер строчки кода из заглавного сообщения, в которой происходит приращение К "каждый раз по счёту миллис" ? и, кстати - все-таки "по счету миллис", или "на 1 сек"?
замечательно :) а еще в счетч можно вставить функцию Лагранжа и быстрое Фурье :) Только всего этого в коде нет, так же как и того, что вы описываете для переменной К - поэтому я и говорю, что эта переменная не нужна.
по счёту миллис......, но я бы всё таки сделал секундный миллис и приращивал бы в нём, так как мне меньше счёт на сек не актуален, этой переменной я планирую задавать 1 час, если мне помогут, примеров в сети я так и не нашел, всё с ртс и с ртс.
newold, давайте я вам сам напишу, что тут делает переменная К - а дальше вы пойдете учить теорию и пока не выучите - вопросов задавать не будете.
Ваша переменная К_1 увеличивается на единицу не "по приращению миллис", а при каждом запуске процедуры, в которой она определена. Как часто это происходит - в общем случае от миллис не зависит вовсе, а зависит только от частоты вызова процедуры. Если вы поставите вызов процедуры timerstart_1() в пустой loop() - ваша К_1 будет расти куда быстрее даже миллисекунд в миллис.
Теперь что она делает - а ничего. На каждом входе в процедуру вы ее увеличиваете, когда она достигает 10- обнуляете. И так по кругу. ВСЕ
вывод - если выкинуть К_1 - не изменится ничего.
по счёту миллис......, но я бы всё таки сделал секундный миллис и приращивал бы в нём
номер строчки?
06
06
от балды. что ли, пишете? и где тут миллис?
В общем - я вам выше описал. как у вас работает. постарайтесь разобраться.
Я убрал бы с 06 строчки
on_state_1 = !on_state_1;
if
(k_1 > 10) {
и без К получал бы секунды. Только мне не надо счётчик наработки..
Миллиса там нет, я немогу так бысто менять код для вас
Был бы благодарен на ссылку похожего таймера, посмотрю как там сделано , только без ртс
Я убрал бы с 06 строчки
и без К получал бы секунды. Только мне не надо счётчик наработки..
бред...
Простите, но обсуждать что-то с вами бессмысленно.
Чтобы закончить - дам вам ответ на заглавный вопрос. Если вы действительно что-то понимаете - этого совета достаточно.
Чтобы сделать обратный таймер - возьмите нужный интервал в миллисекундах и отнимайте от него изменение миллис.
прощайте.
И вдогонку, чем разбирать скопип...ный код, проще новый написать. ИМХО.
он отлично работает, но не так как хотелось бы.
И вдогонку, чем разбирать скопип...ный код, проще новый написать. ИМХО.
+100
newold - Пишите свой код. Пусть он поначалу будет сильно хуже этого, но он будет ВАШ. Он будет соответствовать вашему пониманию процессов и вы всегда сможете обьяснить. зачем в нем каждая строчка. И вы не будете выглядеть ленивым халявщиком, который утащил пару строк там, пару здесь - а теперь приполз на форум выпрашивать. чтоб ему дописали чужой код под его задачу.
Приходите на форум со своим - именно своим - кодом. И вам помогут.
Отжиг, это когда на аве такое фото, красив .. Я б за деньги такое не прилепил, а то что ты прислал, мне похер
Для разовой поделки b707 я не могу учить программирование, нет времени, если тут так серьёзно с 5ю строчками , ну прощайте
Отжиг, это когда на аве такое фото, красив .. Я б за деньги такое не прилепил
тебе не понять. До такого аватара надо дорасти.
Следующий этап его развития будет то, откуда крепится хвост
Для разовой поделки b707 я не могу учить программирование, нет времени, если тут так серьёзно с 5ю строчками , ну прощайте
Сравните: "для разовой поездки на машине я не стану учить ПДД и получать права...". Для тех, кто не хочет учить ПДД - есть таксисты. Но они денег стоят.
Если вас такой принцип устроит - может вам программиста нанять? у нас на форуме есть платный раздел.
Да не смешите. В Тольяти пусть под конвейера сборки пишут, у кого мозгов на это хватит, а те свой итальянский хлам выкинут и от евгенийп поставят, вот тогда он от меня денег получит, пока чёс ни о чём.
Не пишите, или наоборот пишите что хотете почту поменл прощайте, мне не интересно
Не пишите, или наоборот пишите что хотете почту поменл прощайте, мне не интересно
"халява не прошла" (с) :)
Не пишите, или наоборот пишите что хотете почту поменл прощайте, мне не интересно
"халява не прошла" (с) :)
Но пасаран. Воистину.
Ардуина, кстати, тоже - итальянский хлам...
А то, сидишь тут сутками и на вопросы конкретных, занятых пацанов отвечать не хочешь.
Иоптваюмать, откуда оне на свет лезут?