Loading...
Searching...
No Matches
Delays defines
My Libs » General Tools

Макросы и определения для работы с задержками в миллисекундах. 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)
local_time
#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)) {
// выполняем другие задачи, задержка не блокирует поток
}
msDelayWhileActive
#define msDelayWhileActive(_ms_, _pvar_)
Проверяет, активна ли задержка.
Definition mylibs_defs.h:130

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)) {
// выполняем действие после завершения задержки
}
msDelayWaitDone
#define msDelayWaitDone(_ms_, _pvar_)
Проверяет, завершилась ли задержка.
Definition mylibs_defs.h:147

Definition at line 147 of file mylibs_defs.h.