MyLibs 1.0
Расширенные библиотеки для STM32
Loading...
Searching...
No Matches
Delays defines

Макросы и определения для работы с задержками в миллисекундах. More...

Collaboration diagram for Delays defines:

Macros

#define msDelay(_ms_)
 Блокирующая задержка на указанное количество миллисекунд.
#define msDelayStart(_pvar_)
 Начать отсчет задержки.
#define msDelayWhileActive(_ms_, _pvar_)
 Проверяет, активна ли задержка.
#define msDelayWaitDone(_ms_, _pvar_)
 Проверяет, завершилась ли задержка.

Detailed Description

Макросы и определения для работы с задержками в миллисекундах.

Этот блок содержит макросы для реализации задержек с использованием HAL или FreeRTOS:

  • msDelay — простая задержка заданной длительности;
  • msDelayStart — сохранение текущего времени начала задержки;
  • msDelayWhileActive — проверка, активна ли задержка;
  • msDelayWaitDone — проверка, завершена ли задержка. Эти макросы удобны для реализации неблокирующих задержек.

Macro Definition Documentation

◆ msDelay

#define msDelay ( _ms_)
Value:
do { \
uint32_t _start_ = local_time(); \
while (local_time() - _start_ < (_ms_)) {} \
} while(0)
#define local_time()
Локальное время
Definition trace.h:97

Блокирующая задержка на указанное количество миллисекунд.

Parameters
_ms_Время задержки в миллисекундах.
Note
Использует задержку через local_time или osDelay в зависимости от FREERTOS_DELAY.

Definition at line 97 of file mylibs_defs.h.

◆ msDelayStart

#define msDelayStart ( _pvar_)
Value:
*(_pvar_) = local_time()

Начать отсчет задержки.

Parameters
_pvar_Указатель на переменную типа uint32_t для хранения времени старта.

После вызова этого макроса переменная pvar содержит текущее количество миллисекунд с момента запуска системы (local_time).

Используется для реализации неблокирующих задержек.

Definition at line 113 of file mylibs_defs.h.

◆ msDelayWhileActive

#define msDelayWhileActive ( _ms_,
_pvar_ )
Value:
(local_time() - *(_pvar_) < _ms_)

Проверяет, активна ли задержка.

Parameters
_ms_Длительность задержки в миллисекундах.
_pvar_Указатель на переменную, в которой сохранено время начала (msDelayStart).
Return values
1Задержка еще активна.
0Задержка завершена.

Возвращает true, пока время задержки не истекло. Используется в проверках, когда нужно действовать, пока задержка выполняется. Пример:

while(msDelayWhileActive(1000, &tick)) {
// выполняем другие задачи, задержка не блокирует поток
}
#define msDelayWhileActive(_ms_, _pvar_)
Проверяет, активна ли задержка.

Definition at line 130 of file mylibs_defs.h.

◆ msDelayWaitDone

#define msDelayWaitDone ( _ms_,
_pvar_ )
Value:
(local_time() - *(_pvar_) >= _ms_)

Проверяет, завершилась ли задержка.

Parameters
_ms_Длительность задержки в миллисекундах.
_pvar_Указатель на переменную, в которой сохранено время начала (msDelayStart).
Return values
1Задержка завершена.
0Задержка еще активна.

Возвращает true, когда задержка уже завершена. Используется в проверках, когда нужно выполнить действие только после окончания задержки. Пример:

if(msDelayWaitDone(1000, &tick)) {
// выполняем действие после завершения задержки
}
#define msDelayWaitDone(_ms_, _pvar_)
Проверяет, завершилась ли задержка.

Definition at line 147 of file mylibs_defs.h.