Преобразовать время в наносекундах в число итераций
#include <time.h>unsigned long nanospin_ns_to_count( unsigned long nsec );
libc
Функция nanospin_ns_to_count() преобразует время в наносекундах, определяемое nsec, в число итераций, применимое для nanospin_count().
![]() | Функции nanospin*() предназначены для использования с аппаратурой, которая требует коротких временных задержек между операциями. Их следует использовать для задержки не более, чем в несколько миллисекунд. Для более долгих задержек следует использовать функции POSIX timer_*(). |
При первом вызове nanospin_ns_to_count() библиотека C вызывает nanospin_calibrate() с аргументом 0
(прерывания разрешены), если до этого функция не была вызвана явно.
Количество времени ожидания.
Если возникла ошибка, функция возвращает -1
, код ошибки записывается в errno.
Ожидание минимум одну наносекунду:
#include <time.h>#include <sys/syspage.h>unsigned long time = 1;.../* Wake up the hardware, then wait for it to be ready. *//* The C library invokes nanospin_calibrate if it hasn't already been called. */nanospin_count( nanospin_ns_to_count( time ) );/* Use the hardware. */...
ЗОСРВ «Нейтрино»
Необходимо использовать ожидание только тогда, когда это абсолютно необходимо для доступа к оборудованию.
Вызывать эту функцию из обработчика прерываний небезопасно, если функция nanospin_calibrate() еще не была вызвана.
nanospin(), nanospin_calibrate(), nanospin_count(), nanospin_ns(), timer_create()
Предыдущий раздел: Описание API системной библиотеки