Оглавление
Уроки по использованию этих функций:
millis #
unsigned long millis()
Вернёт количество миллисекунд (мс, ms, 10^-3 или 0.001 секунды), прошедшее с запуска программы. Максимальное значение - 2^32-1 -
4 294 967 секунд / 71 582 минут / 1 193 часов / 49.7 суток. После переполнения начнёт счёт с нуля.
На AVR Arduino каждые 41-42 миллисекунды есть пропуск значения, т.е. например идёт 1228, 1229, 1331
Получаем из миллиса сутки, часы, минуты и секунды работы программы:
uint32_t sec = millis() / 1000ul;
uint16_t days = (sec / 3600ul) / 24;
uint8_t hours = (sec / 3600ul) % 24;
uint8_t mins = (sec % 3600ul) / 60ul;
uint8_t secs = (sec % 3600ul) % 60ul;
Serial.print(days);
Serial.print(':');
Serial.print(hours);
Serial.print(':');
Serial.print(mins);
Serial.print(':');
Serial.println(secs);
Или так:
uint32_t sec = millis() / 1000ul;
uint8_t secs = sec % 60;
sec /= 60ul;
uint8_t mins = sec % 60ul;
sec /= 60ul;
uint8_t hours = sec % 24ul;
uint8_t days = sec / 24ul;
Serial.print(days);
Serial.print(':');
Serial.print(hours);
Serial.print(':');
Serial.print(mins);
Serial.print(':');
Serial.println(secs);
micros #
unsigned long micros()
Вернёт количество микросекунд (мкс, us, 10^-6 или 0.000001 секунды), прошедшее с запуска программы. Максимальное значение - 2^32-1 -
4 295 секунд / 71.6 минут / 1.2 часа. После переполнения начнёт счёт с нуля.
На AVR Arduino 16MHz micros имеет разрешение 4 мкс, т.е. результат функции всегда кратен 4
delay #
void delay(unsigned long ms)
Задержка в миллисекундах. Максимальное значение 2^32-1 -
4 294 967 секунд / 49.7 суток.delayMicroseconds #
void delayMicroseconds(unsigned int us)
Задержка в микросекундах.
На AVR Arduino максимальное значение 16383 - для больших задержек используйте delay(), точность в микросекундах всё равно не очень высокая
Полезные страницы #
- Набор GyverKIT – наш большой стартовый набор Arduino, продаётся в России
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress
- Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])
- Поддержать автора за работу над уроками