Время
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); // выход из программы
}