Как сбросить millis()?
Сейчас я делаю школьный проект. Там вы должны запрограммировать секундомер с помощью Arduino. Я написал программу, в которой запускается миллис. Но когда я нажимаю кнопку запуска, миллисекунды не начинаются с 0. У кого-нибудь есть идея? Пожалуйста, дайте мне знать.
Ps: я немец, поэтому прошу прощения за мой плохой английский
@Laurentien, 👍0
1 ответ
▲ 2
Нет. Вместо этого вы просто запоминаете, какой был millis()
, когда вы нажимали кнопку запуска, а затем вычитаете это из того, что millis()
показывает в любой другой момент в будущем.
,
@Majenko
Смотрите также:
- Использовать timer0, не влияя на millis() и micros().
- Торговый автомат Arduino для мониторинга ввода монет в слот во время ожидания ввода пользователя
- Arduino Мигает двумя светодиодами без задержки (количество повторений)
- Сброс Arduino с помощью ПО (каждый день)
- Та же кнопка одним кликом и двойным кликом
- Реструктурировать код для многозадачности Neopixel + ИК-пульт + ардуино
- Кнопка переключения переключает между операторами обращения с разблокированием кнопки
- Как вызвать несколько отложенных функций с помощью одного миллиметра()
Я только что добавил изображение своей программы, может быть, вы сможете взглянуть, @Laurentien
@Laurentien Пожалуйста... не публикуйте фотографии кода. Опубликуйте *фактический* код., @Majenko
Кстати: millis() возвращает **unsigned** long. Это будет иметь значение после 24 дней непрерывной работы. И это позволит работать вечно, даже когда этот unsigned long перевернется., @DataFiddler
@DataFiddler, но выполнение
stopmillis-startmillis
всегда будет возвращать правильное значение, если время между запуском и остановкой меньше 24-дневного перехода., @ratchet freakЭто перенос на 49+ дней. unsigned long позволяет millis() возвращать значение от 0 до 4 294 967 295 мс. x 1 секунда/1000 мс, x 1 минута/60 секунд, x 1 час/60 минут, x 1 день/24 часа = 49,59 дня, @CrossRoads
@ratchet freak, вы правы: расчет один и тот же, независимо от того, интерпретируется ли он без знака или со знаком, поэтому любой результирующий интервал <24,x дней будет положительным, даже если stopmillis и (в следующем периоде) startmillis станут отрицательными. Но отрицательные временные метки (и интервалы со знаком) представить труднее. :), @DataFiddler