Описание функции millis
Функция millis() возвращает количество миллисекунд с момента начала выполнения текущей программы на плате Arduino. Это количество сбрасывается на ноль вследствие переполнения значения приблизительно через 50 дней.
Синтаксис
unsigned long millis()
Параметры
Нет
Что возвращает
Количество миллисекунд с момента начала выполнения программы.
Пример использования функции millis
Через заданное количество времени (500 мс) будем зажигать или гасить светодиод:
bool state = false; // Перемемнная, которая хранит состояние светодиода
unsigned long time; // Переменная, которая хранит последнее значение функции millis
int interval = 500; // Заданный интервал времени, после которого будет происходить смена состояния светодиода
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // Настроить 13 контакт на выход
time = millis(); // Записываем текущее значение
}
void loop() {
// Если прошло больше времени чем заданный интервал
if(millis() - time > interval) {
state = !state; // Изменяем состояние светодиода на противоположное
time = millis(); // Записываем новое значение в переменную time
}
digitalWrite(LED_BUILTIN, state); // Устанавливаем состояние выхода
}
Код функции millis
(hardware/arduino/avr/cores/arduino/wiring.c 1.8.10)
unsigned long millis()
{
unsigned long m;
uint8_t oldSREG = SREG;
cli();
m = timer0_millis;
SREG = oldSREG;
return m;
}



