Raspberry Pi:Библиотеки/WiringPi/Приоритет, прерывания и потоки/Прерывания/waitForInterrupt(): различия между версиями
Myagkij (обсуждение | вклад) |
Нет описания правки |
||
Строка 9: | Строка 9: | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
int waitForInterrupt(int pin, int timeOut); | int waitForInterrupt(int pin, int timeOut); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 23: | Строка 23: | ||
К примеру, если нам нужно дождаться прерывания на '''0-ом''' GPIO-контакте, которое будет запускаться на убывающем фронте импульса, то вам нужно будет вписать команду... | К примеру, если нам нужно дождаться прерывания на '''0-ом''' GPIO-контакте, которое будет запускаться на убывающем фронте импульса, то вам нужно будет вписать команду... | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
gpio edge 0 falling | gpio edge 0 falling | ||
</syntaxhighlight> | </syntaxhighlight> |
Текущая версия от 19:52, 23 мая 2023
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Черновик |
Функция waitForInterrupt()[1]
Синтаксис
int waitForInterrupt(int pin, int timeOut);
Описание
Будучи вызванной, начнет ждать прерывания на указанном контакте, после чего ваша программа будет поставлена на паузу. Параметр timeOut задается в миллисекундах. Кроме того, в нем можно поставить значение «-1», и тогда он будет ждать прерывания вечно.
Если возникнет ошибка, функция вернет значение «-1» (и аналогичным образом будет задана переменная errno), если закончится время – «0», если прерывание будет выполнено успешно – «1».
Перед вызовом waitForInterrupt() следует инициализировать GPIO-контакт, и на данный момент это можно сделать лишь при помощи программы gpio – либо в скрипте, либо в функции system() внутри программы.
К примеру, если нам нужно дождаться прерывания на 0-ом GPIO-контакте, которое будет запускаться на убывающем фронте импульса, то вам нужно будет вписать команду...
gpio edge 0 falling
...перед запуском программы.