Время

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


65 просмотров0 комментариев

Комментарии (0)

Для участия в обсуждении Вы должны быть авторизованным пользователем
Разделы

Навигация

ВойтиРегистрация