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