millis()
Описание
Возвращает количество миллисекунд, прошедших с момента начала выполнения текущей программы на плате Arduino. Это число переполнится (вернется к нулю) приблизительно через 50 дней.
Синтаксис
Используйте следующую функцию, чтобы получить точное время работы платы в миллисекундах:
millis()
Параметры
Эта функция не принимает параметров.
Возвращаемое значение
Эта функция возвращает количество миллисекунд, прошедших с момента запуска программы. Тип данных: unsigned long.
Пример кода
Этот пример кода выводит в последовательный порт количество миллисекунд, прошедших с момента начала выполнения кода на плате Arduino.
unsigned long myTime;
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print("Time: ");
myTime = millis();
Serial.println(myTime); // prints time since program started
delay(1000); // wait a second so as not to send massive amounts of data
}
Примечания и предупреждения
Возвращаемое значение
millis()имеет типunsigned long; логические ошибки могут возникнуть, если программист попытается выполнить арифметические операции с меньшими типами данных, такими какint. Даже знаковыйlongможет столкнуться с ошибками, так как его максимальное значение вдвое меньше, чем у беззнакового аналога.millis()увеличивается (для 16 МГц AVR-чипов и некоторых других) каждые 1,024 миллисекунды, затем увеличивается на 2 (а не на 1) каждые 41 или 42 тика, чтобы вернуть синхронизацию; таким образом, некоторые значенияmillis()пропускаются. Для точного измерения времени на коротких интервалах рассмотрите использованиеmicros().millis()обернется к 0 приблизительно через 50 дней (micros — приблизительно через 70 минут).Переконфигурация таймеров микроконтроллера может привести к неточным показаниям
millis().