18.11.2020, 00:17
|
#21
|
Частый гость
Регистрация: 07.11.2019
Сообщений: 15
Сказал спасибо: 6
Сказали Спасибо 1 раз в 1 сообщении
|
Re: многозадачный таймер на millis для Ардуино
то что вы говорите это что то в этом роде ?
if (a != 0)
{
for ( int a = 100 ; a › 1 ; a-- )
}
|
|
|
|
18.11.2020, 00:33
|
#22
|
Почётный гражданин KAZUS.RU
Регистрация: 15.11.2010
Сообщений: 2,379
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
|
Re: многозадачный таймер на millis для Ардуино
Сообщение от ProtAS-13
|
Сорри за офтоп.
|
общался хоть раз на забугорных форумах? Тебя там просто заигнорят, если будешь спрашивать всякую чушь. Да даже на форумах тех.поддержки могут тупо заигнорить.
Сообщение от dgrishin
|
то через 50 дней можно получить непредсказуемый результат.
|
Сообщение от dgrishin
|
Но проблема периода 50 дней здесь не учитывается.
|
Никакой проблемы с millis НЕТ. Просто надо помнить: всегда стартовое значение вычитать из millis и никак не наоборот.
Если надо выполнять очень много разноплановых задач, то смотрим в сторону ОС. Например, quarqTS. Очень лёгкая, платформонезависимая ОС, в которую я влюбился с первого взгляда))) И никаких if, таймеров и прочей мути.
|
|
|
|
18.11.2020, 08:06
|
#23
|
Частый гость
Регистрация: 07.11.2019
Сообщений: 15
Сказал спасибо: 6
Сказали Спасибо 1 раз в 1 сообщении
|
Re: многозадачный таймер на millis для Ардуино
1 мне на забугорныйе форумы НАС-РАТЬ !!!!
2 я только начал изучать Ардуино и мне можно задавать любые вопросы !
3 ты несешь всякую куйню не по теме !
4 если ты слишком продвинутый как писали выше то лучше молчи , не раскрывай свою хлеборезку если сказать нечего !
|
|
|
|
18.11.2020, 08:18
|
#24
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: многозадачный таймер на millis для Ардуино
Декрементные таймеры работают в прерывании системного таймера и просто уменьшают на единицу все счетчики, у которых значение ›0, с периодом в один системный тик. Когда значение счетчика станет = 0, выставляется флаг окончания счета, а счетчик, если он циклический, может быть перезапущен снова со стартового значения и снова уменьшаться до 0.
Сообщение от Владимир 013
|
о истечении 50 суток обнулиться счетчик
|
После обнуления системного счетчика произойдет сбой ваших вычислений.
Например, (3960 - 3900 = 60) это нормально. А (10 - 3960) уже не нормально.
Поэтому, раз в 50 суток у вас будут происходить сбои интервалов.
|
|
|
|
18.11.2020, 12:51
|
#25
|
Прописка
Регистрация: 17.11.2009
Сообщений: 132
Сказал спасибо: 15
Сказали Спасибо 30 раз(а) в 16 сообщении(ях)
|
Re: многозадачный таймер на millis для Ардуино
NewWriter, да всё нормально будет. Сами посчитайте для uint. Так как вы только начинающие думают.) Хотя бывает, если раньше с этим никогда не сталкивались).
|
|
|
|
18.11.2020, 14:06
|
#26
|
Почётный гражданин KAZUS.RU
Регистрация: 15.11.2010
Сообщений: 2,379
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
|
Re: многозадачный таймер на millis для Ардуино
Сообщение от NewWriter
|
А (10 - 3960) уже не нормально.
|
первая же ссылка в яндексе
http://arduino.ru/forum/programmirov...olnenie-millis
|
|
|
|
18.11.2020, 14:09
|
#27
|
Почётный гражданин KAZUS.RU
Регистрация: 15.11.2010
Сообщений: 2,379
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
|
Re: многозадачный таймер на millis для Ардуино
Сообщение от Владимир 013
|
я только начал изучать Ардуино
|
меня на изучении дурины хватило на 2 недели, пока не понял, что это какая-то шляпа для школьников. Ещё больше удручает факт, что дурину преподают в ВУЗ-ах. Бежать из таких ВУЗ-ов без оглядки.
|
|
|
|
18.11.2020, 14:39
|
#28
|
Почётный гражданин KAZUS.RU
Регистрация: 12.02.2013
Сообщений: 1,045
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
|
Re: многозадачный таймер на millis для Ардуино
Сообщение от OKF
|
Сами посчитайте для uint
|
Пример - текущее значение таймера 0xfffffff0 - (шел 49й день).
Сохраняем это значение в переменной. Ждем когда таймер еще посчитает 1000 раз (новое ожидаемое значение таймера будет 0xfffffff0 + 1000 = 991 - это число которое будет занимать младшие 32 разряда после переполнения.
А у таймера через 1000 тиков будет 1000-16 = 984.
Таймер работает модулярно - при наступлении переполнения обнуляется, а при наступлении переполнения в переменной, она просто теряет старший бит ( но при этом не обнуляется)
|
|
|
|
18.11.2020, 14:48
|
#29
|
Почётный гражданин KAZUS.RU
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,731
Сказал спасибо: 2,441
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
|
Re: многозадачный таймер на millis для Ардуино
Сообщение от dgrishin
|
при наступлении переполнения в переменной, она просто теряет старший бит ( но при этом не обнуляется)
|
И какое значение в ней остается?
|
|
|
|
18.11.2020, 15:00
|
#30
|
Почётный гражданин KAZUS.RU
Регистрация: 12.02.2013
Сообщений: 1,045
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
|
Re: многозадачный таймер на millis для Ардуино
Сообщение от baiderin
|
И какое значение в ней остается?
|
Сорри, проверил еще раз - все правильно работает. Слишком поверил калькулятору, хотя если разделить число на 2 части - число необходимое для переполнения + что осталось то как раз получается тоже модулярное вычисление. 984=984. Усе сходится.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:40.
|
|