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