\doxysubsubsection{Delays defines }
\hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s}{}\label{group___d_e_l_a_y_s___d_e_f_i_n_e_s}\index{Delays defines@{Delays defines}}


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


Collaboration diagram for Delays defines\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=273pt]{group___d_e_l_a_y_s___d_e_f_i_n_e_s}
\end{center}
\end{figure}
\doxysubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}{ms\+Delay}}(\+\_\+ms\+\_\+)
\begin{DoxyCompactList}\small\item\em Блокирующая задержка на указанное количество миллисекунд. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}{ms\+Delay\+Start}}(\+\_\+pvar\+\_\+)
\begin{DoxyCompactList}\small\item\em Начать отсчет задержки. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}{ms\+Delay\+While\+Active}}(\+\_\+ms\+\_\+,  \+\_\+pvar\+\_\+)
\begin{DoxyCompactList}\small\item\em Проверяет, активна ли задержка. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{ms\+Delay\+Wait\+Done}}(\+\_\+ms\+\_\+,  \+\_\+pvar\+\_\+)
\begin{DoxyCompactList}\small\item\em Проверяет, завершилась ли задержка. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsubsubsection{Detailed Description}
Макросы и определения для работы с задержками в миллисекундах. 

Этот блок содержит макросы для реализации задержек с использованием HAL или Free\+RTOS\+:
\begin{DoxyItemize}
\item \doxylink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}{ms\+Delay} — простая задержка заданной длительности;
\item \doxylink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}{ms\+Delay\+Start} — сохранение текущего времени начала задержки;
\item \doxylink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}{ms\+Delay\+While\+Active} — проверка, активна ли задержка;
\item \doxylink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{ms\+Delay\+Wait\+Done} — проверка, завершена ли задержка. Эти макросы удобны для реализации неблокирующих задержек. 
\end{DoxyItemize}

\label{doc-define-members}
\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_doc-define-members}
\doxysubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}\index{Delays defines@{Delays defines}!msDelay@{msDelay}}
\index{msDelay@{msDelay}!Delays defines@{Delays defines}}
\doxysubsubsubsubsection{\texorpdfstring{msDelay}{msDelay}}
{\footnotesize\ttfamily \label{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479} 
\#define ms\+Delay(\begin{DoxyParamCaption}\item[{}]{\+\_\+ms\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{do}\ \{\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ uint32\_t\ \_start\_\ =\ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\_time}}();\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ while\ (\mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\_time}}()\ -\/\ \_start\_\ <\ (\_ms\_))\ \{\}\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \}\ \textcolor{keywordflow}{while}(0)}

\end{DoxyCode}


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


\begin{DoxyParams}{Parameters}
{\em \+\_\+ms\+\_\+} & Время задержки в миллисекундах. \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
Использует задержку через \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\+\_\+time} или os\+Delay в зависимости от \doxylink{group___l_i_b_s___c_o_n_f_i_g_ga57c369737d5c0cfdb7baeecba0a4b151}{FREERTOS\+\_\+\+DELAY}. 
\end{DoxyNote}


Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00097}{97}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.

\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}\index{Delays defines@{Delays defines}!msDelayStart@{msDelayStart}}
\index{msDelayStart@{msDelayStart}!Delays defines@{Delays defines}}
\doxysubsubsubsubsection{\texorpdfstring{msDelayStart}{msDelayStart}}
{\footnotesize\ttfamily \label{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25} 
\#define ms\+Delay\+Start(\begin{DoxyParamCaption}\item[{}]{\+\_\+pvar\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{*(\_pvar\_)\ =\ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\_time}}()}

\end{DoxyCode}


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


\begin{DoxyParams}{Parameters}
{\em \+\_\+pvar\+\_\+} & Указатель на переменную типа uint32\+\_\+t для хранения времени старта.\\
\hline
\end{DoxyParams}
После вызова этого макроса переменная {\itshape pvar} содержит текущее количество миллисекунд с момента запуска системы (\doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\+\_\+time}).

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

Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00113}{113}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.

\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}\index{Delays defines@{Delays defines}!msDelayWhileActive@{msDelayWhileActive}}
\index{msDelayWhileActive@{msDelayWhileActive}!Delays defines@{Delays defines}}
\doxysubsubsubsubsection{\texorpdfstring{msDelayWhileActive}{msDelayWhileActive}}
{\footnotesize\ttfamily \label{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85} 
\#define ms\+Delay\+While\+Active(\begin{DoxyParamCaption}\item[{}]{\+\_\+ms\+\_\+}{, }\item[{}]{\+\_\+pvar\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\_time}}()\ -\/\ *(\_pvar\_)\ <\ \_ms\_)}

\end{DoxyCode}


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


\begin{DoxyParams}{Parameters}
{\em \+\_\+ms\+\_\+} & Длительность задержки в миллисекундах. \\
\hline
{\em \+\_\+pvar\+\_\+} & Указатель на переменную, в которой сохранено время начала (\doxylink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}{ms\+Delay\+Start}). \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & Задержка еще активна. \\
\hline
{\em 0} & Задержка завершена.\\
\hline
\end{DoxyRetVals}
Возвращает true, пока время задержки не истекло. Используется в проверках, когда нужно {\bfseries{действовать, пока задержка выполняется}}. Пример\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{while}(\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}{msDelayWhileActive}}(1000,\ \&tick))\ \{}
\DoxyCodeLine{\ \ \ \ \textcolor{comment}{//\ выполняем\ другие\ задачи,\ задержка\ не\ блокирует\ поток}}
\DoxyCodeLine{\}}

\end{DoxyCode}
 

Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00130}{130}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.

\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}\index{Delays defines@{Delays defines}!msDelayWaitDone@{msDelayWaitDone}}
\index{msDelayWaitDone@{msDelayWaitDone}!Delays defines@{Delays defines}}
\doxysubsubsubsubsection{\texorpdfstring{msDelayWaitDone}{msDelayWaitDone}}
{\footnotesize\ttfamily \label{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518} 
\#define ms\+Delay\+Wait\+Done(\begin{DoxyParamCaption}\item[{}]{\+\_\+ms\+\_\+}{, }\item[{}]{\+\_\+pvar\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\_time}}()\ -\/\ *(\_pvar\_)\ >=\ \_ms\_)}

\end{DoxyCode}


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


\begin{DoxyParams}{Parameters}
{\em \+\_\+ms\+\_\+} & Длительность задержки в миллисекундах. \\
\hline
{\em \+\_\+pvar\+\_\+} & Указатель на переменную, в которой сохранено время начала (ms\+Delay\+Start). \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & Задержка завершена. \\
\hline
{\em 0} & Задержка еще активна.\\
\hline
\end{DoxyRetVals}
Возвращает true, когда задержка уже завершена. Используется в проверках, когда нужно {\bfseries{выполнить действие только после окончания задержки}}. Пример\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{if}(\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{msDelayWaitDone}}(1000,\ \&tick))\ \{}
\DoxyCodeLine{\ \ \ \ \textcolor{comment}{//\ выполняем\ действие\ после\ завершения\ задержки}}
\DoxyCodeLine{\}}

\end{DoxyCode}
 

Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00147}{147}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.

