\doxysubsubsection{Bit access defines }
\hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}{}\label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}\index{Bit access defines@{Bit access defines}}


Макросы и typedef\textquotesingle{}ы для работы с битами в unsigned типах.  


Collaboration diagram for Bit access defines\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=288pt]{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}
\end{center}
\end{figure}
\doxysubsubsubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
union \mbox{\hyperlink{unionuint8___bit_type_def}{uint8\+\_\+\+Bit\+Type\+Def}}
\item 
union \mbox{\hyperlink{unionuint16___bit_type_def}{uint16\+\_\+\+Bit\+Type\+Def}}
\item 
union \mbox{\hyperlink{unionuint32___bit_type_def}{uint32\+\_\+\+Bit\+Type\+Def}}
\item 
union \mbox{\hyperlink{unionuint64___bit_type_def}{uint64\+\_\+\+Bit\+Type\+Def}}
\end{DoxyCompactItemize}
\doxysubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{uint8\+\_\+bit}}(\+\_\+uint8\+\_\+,  \+\_\+bit\+\_\+)
\begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint8\+\_\+t. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}{uint16\+\_\+bit}}(\+\_\+uint8\+\_\+,  \+\_\+bit\+\_\+)
\begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint16\+\_\+t. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}{uint32\+\_\+bit}}(\+\_\+uint8\+\_\+,  \+\_\+bit\+\_\+)
\begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint32\+\_\+t. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}{uint64\+\_\+bit}}(\+\_\+uint8\+\_\+,  \+\_\+bit\+\_\+)
\begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint64\+\_\+t. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsubsubsection{Detailed Description}
Макросы и typedef\textquotesingle{}ы для работы с битами в unsigned типах. 

В этом файле определены макросы для получения значения конкретного бита\texorpdfstring{$^\wedge$}{\string^}
\begin{DoxyItemize}
\item \doxylink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{uint8\+\_\+bit}
\item \doxylink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}{uint16\+\_\+bit}
\item \doxylink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}{uint32\+\_\+bit}
\item \doxylink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}{uint64\+\_\+bit}
\end{DoxyItemize}

Особенности использования\+:
\begin{DoxyItemize}
\item Индекс бита должен быть {\bfseries{константой на этапе компиляции}}. Пример верного использования\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{uint8\_t\ val\ =\ 0x05;}
\DoxyCodeLine{uint8\_t\ b2\ =\ \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{uint8\_bit}}(val,\ 2);\ \textcolor{comment}{//\ Получить\ бит\ 2}}
\DoxyCodeLine{\mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{uint8\_bit}}(val,\ 6)\ =\ 1;\ \textcolor{comment}{//\ Записать\ бит\ 6}}

\end{DoxyCode}

\item Нельзя использовать переменные в качестве индекса\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{uint8\_t\ i\ =\ 2;}
\DoxyCodeLine{\mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{uint8\_bit}}(val,\ i);\ \textcolor{comment}{//\ Не\ сработает!}}

\end{DoxyCode}

\item Макросы возвращают 0 или 1.
\item Доступ реализован через приведение к {\ttfamily union} с битовыми полями, поэтому это безопасный способ работы с отдельными битами без ручного сдвига и маскирования. 
\end{DoxyItemize}

\label{doc-define-members}
\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_doc-define-members}
\doxysubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}\index{Bit access defines@{Bit access defines}!uint8\_bit@{uint8\_bit}}
\index{uint8\_bit@{uint8\_bit}!Bit access defines@{Bit access defines}}
\doxysubsubsubsubsection{\texorpdfstring{uint8\_bit}{uint8\_bit}}
{\footnotesize\ttfamily \label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396} 
\#define uint8\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+}{, }\item[{}]{\+\_\+bit\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(*(\mbox{\hyperlink{unionuint8___bit_type_def}{uint8\_BitTypeDef}}\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}

\end{DoxyCode}


Получить n-\/й бит из uint8\+\_\+t. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+uint8\+\_\+} & Переменная типа uint8\+\_\+t \\
\hline
{\em \+\_\+bit\+\_\+} & Константный номер бита (0..7) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Значение выбранного бита (0 или 1) 
\end{DoxyReturn}
\begin{DoxyNote}{Note}
Индекс бита должен быть известен на этапе компиляции! 
\end{DoxyNote}


Definition at line \mbox{\hyperlink{bit__access_8h_source_l00129}{129}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}.

\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}\index{Bit access defines@{Bit access defines}!uint16\_bit@{uint16\_bit}}
\index{uint16\_bit@{uint16\_bit}!Bit access defines@{Bit access defines}}
\doxysubsubsubsubsection{\texorpdfstring{uint16\_bit}{uint16\_bit}}
{\footnotesize\ttfamily \label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086} 
\#define uint16\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+}{, }\item[{}]{\+\_\+bit\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(*(\mbox{\hyperlink{unionuint16___bit_type_def}{uint16\_BitTypeDef}}\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}

\end{DoxyCode}


Получить n-\/й бит из uint16\+\_\+t. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+uint16\+\_\+} & Переменная типа uint16\+\_\+t \\
\hline
{\em \+\_\+bit\+\_\+} & Константный номер бита (0..15) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Значение выбранного бита (0 или 1) 
\end{DoxyReturn}
\begin{DoxyNote}{Note}
Индекс бита должен быть известен на этапе компиляции! 
\end{DoxyNote}


Definition at line \mbox{\hyperlink{bit__access_8h_source_l00137}{137}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}.

\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}\index{Bit access defines@{Bit access defines}!uint32\_bit@{uint32\_bit}}
\index{uint32\_bit@{uint32\_bit}!Bit access defines@{Bit access defines}}
\doxysubsubsubsubsection{\texorpdfstring{uint32\_bit}{uint32\_bit}}
{\footnotesize\ttfamily \label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1} 
\#define uint32\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+}{, }\item[{}]{\+\_\+bit\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(*(\mbox{\hyperlink{unionuint32___bit_type_def}{uint32\_BitTypeDef}}\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}

\end{DoxyCode}


Получить n-\/й бит из uint32\+\_\+t. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+uint32\+\_\+} & Переменная типа uint32\+\_\+t \\
\hline
{\em \+\_\+bit\+\_\+} & Константный номер бита (0..31) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Значение выбранного бита (0 или 1) 
\end{DoxyReturn}
\begin{DoxyNote}{Note}
Индекс бита должен быть известен на этапе компиляции! 
\end{DoxyNote}


Definition at line \mbox{\hyperlink{bit__access_8h_source_l00145}{145}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}.

\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}\index{Bit access defines@{Bit access defines}!uint64\_bit@{uint64\_bit}}
\index{uint64\_bit@{uint64\_bit}!Bit access defines@{Bit access defines}}
\doxysubsubsubsubsection{\texorpdfstring{uint64\_bit}{uint64\_bit}}
{\footnotesize\ttfamily \label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a} 
\#define uint64\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+}{, }\item[{}]{\+\_\+bit\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(*(\mbox{\hyperlink{unionuint64___bit_type_def}{uint64\_BitTypeDef}}\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}

\end{DoxyCode}


Получить n-\/й бит из uint64\+\_\+t. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+uint64\+\_\+} & Переменная типа uint64\+\_\+t \\
\hline
{\em \+\_\+bit\+\_\+} & Константный номер бита (0..63) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Значение выбранного бита (0 или 1) 
\end{DoxyReturn}
\begin{DoxyNote}{Note}
Индекс бита должен быть известен на этапе компиляции! 
\end{DoxyNote}


Definition at line \mbox{\hyperlink{bit__access_8h_source_l00153}{153}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}.

