Перейти к основному содержимому

Время

delay()

Приостанавливает работу программы на время (в миллисекундах), указанное в качестве параметра.

Синтаксис

void delay(unsigned int ms)

Параметры

ms - количество миллисекунд (в секунде 1000 миллисекунд.)

Возврат

Ничего.

Пример кода

Код приостанавливает работу программы на одну секунду перед переключением уровня логического напряжения на контакте PA6.

const int PIN = 6; // PA6

void setup() {
// Инициализация библиотеки wiringRP (режим нумерации контактов sunxi)
if(setupWiringRP(WRP_MODE_SUNXI) < 0)
exit(EXIT_FAILURE);

// Инициализация пользовательских объектов
pinMode(PIN, OUTPUT);
}

void loop() {
// Основной цикл программы
digitalWrite(PIN, HIGH);
delay(1000);
digitalWrite(PIN, LOW);
delay(1000);
}

ONDESTROY() {
// Освобождение занятых ресурсов, выключение напряжения на пинах
digitalWrite(PIN, LOW);
pinMode(PIN, DISABLE);

// Завершение работы библиотек
releaseWiringRP();

exit(0); // выход из программы
}

delayMicroseconds()

Приостанавливает работу программы на время (в микросекундах), указанное в качестве параметра.

Синтаксис

void delayMicroseconds(unsigned int us)

Параметры

us - количество микросекунд (в миллисекунде содержится тысяча микросекунд, а в секунде - миллион микросекунд).

Возврат

Ничего.

Пример кода

Код приостанавливает работу программы на 50 микросекунд перед переключением уровня логического напряжения на контакте PA6.

const int PIN = 6; // PA6

void setup() {
// Инициализация библиотеки wiringRP (режим нумерации контактов sunxi)
if(setupWiringRP(WRP_MODE_SUNXI) < 0)
exit(EXIT_FAILURE);

// Инициализация пользовательских объектов
pinMode(PIN, OUTPUT);
}

void loop() {
// Основной цикл программы
digitalWrite(PIN, HIGH);
delayMicroseconds(50);
digitalWrite(PIN, LOW);
delayMicroseconds(50);
}

ONDESTROY() {
// Освобождение занятых ресурсов, выключение напряжения на пинах
digitalWrite(PIN, LOW);
pinMode(PIN, DISABLE);

// Завершение работы библиотек
releaseWiringRP();

exit(0); // выход из программы
}

millis()

Возвращает количество миллисекунд, прошедших с момента запуска текущей программы. Это число переполнятся (обнуляется) примерно раз в 49 дней

Синтаксис

unsigned int millis(void)

Параметры

Ничего.

Возврат

Количество миллисекунд, прошедших с момента запуска текущей программы.

Пример кода

Код вычисляет количество миллисекунд, прошедших между переключениями уровня логического напряжения на контакте PA6.

const int PIN = 6; // PA6
unsigned int start_time = 0;

void setup() {
// Инициализация библиотеки wiringRP (режим нумерации контактов sunxi)
if(setupWiringRP(WRP_MODE_SUNXI) < 0)
exit(EXIT_FAILURE);

// Инициализация пользовательских объектов
pinMode(PIN, OUTPUT);
}

void loop() {
// Основной цикл программы
start_time = millis();
digitalWrite(PIN, HIGH);
delay(500);
digitalWrite(PIN, LOW);
delay(500);
printf("Between: %d\n", millis() - start_time);
}

ONDESTROY() {
// Освобождение занятых ресурсов, выключение напряжения на пинах
digitalWrite(PIN, LOW);
pinMode(PIN, DISABLE);

// Завершение работы библиотек
releaseWiringRP();

exit(0); // выход из программы
}

micros()

Возвращает количество микросекунд, прошедших с момента запуска текущей программы. Это число переполняется (обнуляется) примерно раз в 71 минуту.

Синтаксис

unsigned int micros(void)

Параметры

Ничего.

Возврат

Количество микросекунд, прошедших с момента запуска текущей программы.

Пример кода

Код вычисляет количество микросекунд, прошедших между переключениями уровня логического напряжения на контакте PA6.

const int PIN = 6; // PA6
unsigned int start_time = 0;

void setup() {
// Инициализация библиотеки wiringRP (режим нумерации контактов sunxi)
if(setupWiringRP(WRP_MODE_SUNXI) < 0)
exit(EXIT_FAILURE);

// Инициализация пользовательских объектов
pinMode(PIN, OUTPUT);
}

void loop() {
// Основной цикл программы
start_time = micros();
digitalWrite(PIN, HIGH);
delayMicroseconds(50);
digitalWrite(PIN, LOW);
delayMicroseconds(50);
printf("Between: %d\n", micros() - start_time);
}

ONDESTROY() {
// Освобождение занятых ресурсов, выключение напряжения на пинах
digitalWrite(PIN, LOW);
pinMode(PIN, DISABLE);

// Завершение работы библиотек
releaseWiringRP();

exit(0); // выход из программы
}