init commit
сделаны базовые хедеры: - mylibs_config - mylibs_defs - mylibs_include - trace - trackers - bit_access также сделан модуль general_gpio.c/.h Но надо проверить переструктуризированные модули Остальные модули __general_XXX в целом готовы и как-то работают (на МЗКТЭ) но не структуризированы
This commit is contained in:
42
Doc/latex/Makefile
Normal file
42
Doc/latex/Makefile
Normal file
@@ -0,0 +1,42 @@
|
||||
LATEX_CMD?=pdflatex
|
||||
MKIDX_CMD?=makeindex
|
||||
BIBTEX_CMD?=bibtex
|
||||
LATEX_COUNT?=8
|
||||
MANUAL_FILE?=refman
|
||||
|
||||
all: $(MANUAL_FILE).pdf
|
||||
|
||||
pdf: $(MANUAL_FILE).pdf
|
||||
|
||||
$(MANUAL_FILE).pdf: clean $(MANUAL_FILE).tex
|
||||
$(LATEX_CMD) $(MANUAL_FILE) || \
|
||||
if [ $$? != 0 ] ; then \
|
||||
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
|
||||
false; \
|
||||
fi
|
||||
$(MKIDX_CMD) $(MANUAL_FILE).idx
|
||||
$(LATEX_CMD) $(MANUAL_FILE) || \
|
||||
if [ $$? != 0 ] ; then \
|
||||
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
|
||||
false; \
|
||||
fi
|
||||
latex_count=$(LATEX_COUNT) ; \
|
||||
while grep -E -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\
|
||||
do \
|
||||
echo "Rerunning latex...." ;\
|
||||
$(LATEX_CMD) $(MANUAL_FILE) || \
|
||||
if [ $$? != 0 ] ; then \
|
||||
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
|
||||
false; \
|
||||
fi; \
|
||||
latex_count=`expr $$latex_count - 1` ;\
|
||||
done
|
||||
$(MKIDX_CMD) $(MANUAL_FILE).idx
|
||||
$(LATEX_CMD) $(MANUAL_FILE) || \
|
||||
if [ $$? != 0 ] ; then \
|
||||
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
|
||||
false; \
|
||||
fi
|
||||
|
||||
clean:
|
||||
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl $(MANUAL_FILE).pdf
|
||||
198
Doc/latex/____general__flash_8c_source.tex
Normal file
198
Doc/latex/____general__flash_8c_source.tex
Normal file
@@ -0,0 +1,198 @@
|
||||
\doxysection{\+\_\+\+\_\+general\+\_\+flash.\+c}
|
||||
\hypertarget{____general__flash_8c_source}{}\label{____general__flash_8c_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_flash.c@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_flash.c}}
|
||||
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00001}00001\ \textcolor{preprocessor}{\#include\ "{}general\_flash.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00002}00002\ FLASH\_EraseInitTypeDef\ EraseInitStruct;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00003}00003\ \textcolor{keyword}{extern}\ HAL\_StatusTypeDef\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00004}00004\ \textcolor{keywordtype}{unsigned}\ CRC\_Update;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00005}00005\ \textcolor{comment}{//uint32\_t\ PAGE\_OFFSET\ =\ ((uint32\_t)((4-\/1)\ *\ 0x0400));}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00006}00006\ uint32\_t\ PAGE\_NUMB\ =\ 127;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00007}00007\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00008}00008\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00009}00009\ \textcolor{comment}{/*\ Записать\ в\ память\ данные,\ произвольного\ размера\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00010}00010\ HAL\_StatusTypeDef\ FLASH\_Write\_Data(uint32\_t*\ Address,\ uint8\_t*\ Data,\ \textcolor{keywordtype}{int}\ Data\_size)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00011}00011\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00012}00012\ \ \ HAL\_StatusTypeDef\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00013}00013\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00014}00014\ \ \ \textcolor{keywordtype}{int}\ data\_cnt\ =\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00015}00015\ \ \ uint32\_t\ adr;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00016}00016\ \ \ uint32\_t\ word\_data;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00017}00017\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00018}00018\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00019}00019\ \ \ res\_hal\ =\ HAL\_FLASH\_Unlock();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00020}00020\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00021}00021\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00022}00022\ \ \ \textcolor{keywordflow}{for}\ (adr\ =\ *Address;\ adr\ <\ *Address\ +\ Data\_size;\ adr\ =\ adr\ +\ 4)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00023}00023\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00024}00024\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00025}00025\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00026}00026\ \ \ \ \ word\_data\ =\ (}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00027}00027\ \ \ \ \ \ \ Data[data\_cnt]\ |}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00028}00028\ \ \ \ \ \ \ Data[data\_cnt\ +\ 1]\ <<\ 8\ |}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00029}00029\ \ \ \ \ \ \ Data[data\_cnt\ +\ 2]\ <<\ 16\ |}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00030}00030\ \ \ \ \ \ \ Data[data\_cnt\ +\ 3]\ <<\ 24);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00031}00031\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00032}00032\ \ \ \ \ res\_hal\ =\ HAL\_FLASH\_Program(FLASH\_TYPEPROGRAM\_WORD,\ adr,\ word\_data);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00033}00033\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00034}00034\ \ \ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00035}00035\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00036}00036\ \ \ \ \ data\_cnt\ +=\ 4;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00037}00037\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00038}00038\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00039}00039\ \ \ *Address\ +=\ Data\_size;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00040}00040\ \ \ res\_hal\ =\ HAL\_FLASH\_Lock();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00041}00041\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00042}00042\ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00043}00043\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00044}00044\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00045}00045\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00046}00046\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00047}00047\ HAL\_StatusTypeDef\ FLASH\_Enable\_DualBankMode(\textcolor{keywordtype}{void})}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00048}00048\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00049}00049\ \ \ HAL\_StatusTypeDef\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00050}00050\ \ \ FLASH\_AdvOBProgramInitTypeDef\ OB\_DualBank;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00051}00051\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00052}00052\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00053}00053\ \ \ res\_hal\ =\ HAL\_FLASH\_Unlock();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00054}00054\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00055}00055\ \ \ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00056}00056\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00057}00057\ \ \ res\_hal\ =\ HAL\_FLASH\_OB\_Unlock();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00058}00058\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00059}00059\ \ \ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00060}00060\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00061}00061\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00062}00062\ \ \ FLASH-\/>OPTCR\ |=\ FLASH\_OPTCR\_DB1M;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00063}00063\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00064}00064\ \ \ res\_hal\ =\ HAL\_FLASH\_OB\_Launch();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00065}00065\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00066}00066\ \ \ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00067}00067\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00068}00068\ \ \ res\_hal\ =\ HAL\_FLASH\_OB\_Lock();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00069}00069\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00070}00070\ \ \ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00071}00071\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00072}00072\ \ \ res\_hal\ =\ HAL\_FLASH\_Lock();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00073}00073\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00074}00074\ \ \ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00075}00075\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00076}00076\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00077}00077\ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00078}00078\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00079}00079\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00080}00080\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00081}00081\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00082}00082\ \textcolor{comment}{/*\ Убрать\ защиту\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00083}00083\ HAL\_StatusTypeDef\ FLASH\_WriteProtection(uint32\_t\ BankN,\ uint32\_t\ WriteProtection)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00084}00084\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00085}00085\ \ \ HAL\_StatusTypeDef\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00086}00086\ \ \ FLASH\_OBProgramInitTypeDef\ OBInit;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00087}00087\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00088}00088\ \ \ \ \ \textcolor{comment}{//\ Очистка\ всех\ возможных\ ошибок}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00089}00089\ \ \ FLASH-\/>SR\ |=\ FLASH\_FLAG\_WRPERR\ \ \textcolor{comment}{//\ Write\ Protection\ Error}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00090}00090\ \ \ \ \ \ \ \ \ \ \ \ \ \ |\ FLASH\_FLAG\_PGSERR\ \ \textcolor{comment}{//\ Programming\ Sequence\ Error}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00091}00091\ \ \ \ \ \ \ \ \ \ \ \ \ \ |\ FLASH\_FLAG\_PGAERR\ \ \textcolor{comment}{//\ Programming\ Alignment\ Error}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00092}00092\ \ \ \ \ \ \ \ \ \ \ \ \ \ |\ FLASH\_FLAG\_OPERR;\ \ \textcolor{comment}{//\ Operation\ Error}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00093}00093\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00094}00094\ \ \ res\_hal\ =\ HAL\_FLASH\_Unlock();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00095}00095\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00096}00096\ \ \ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00097}00097\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00098}00098\ \ \ res\_hal\ =\ HAL\_FLASH\_OB\_Unlock();\ \textcolor{comment}{//\ Разблокировка\ Option\ Bytes}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00099}00099\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00100}00100\ \ \ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00101}00101\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00102}00102\ \ \ \textcolor{comment}{//\ Считываем\ текущую\ конфигурацию\ Option\ Bytes}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00103}00103\ \ \ HAL\_FLASHEx\_OBGetConfig(\&OBInit);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00104}00104\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00105}00105\ \ \ \textcolor{comment}{//\ Отключаем\ защиту\ на\ всех\ секторах\ второго\ банка}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00106}00106\ \ \ OBInit.OptionType\ =\ OPTIONBYTE\_WRP;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00107}00107\ \ \ OBInit.WRPState\ =\ WriteProtection;\ \textcolor{comment}{//\ Снять\ защиту}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00108}00108\ \ \ OBInit.WRPSector\ =\ OB\_WRP\_SECTOR\_12;\ \textcolor{comment}{//\ Снять\ защиту}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00109}00109\ \ \ OBInit.Banks\ =\ BankN;\ \textcolor{comment}{//\ Указываем\ второй\ банк}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00110}00110\ \ \ res\_hal\ =\ HAL\_FLASHEx\_OBProgram(\&OBInit);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00111}00111\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00112}00112\ \ \ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00113}00113\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00114}00114\ \ \ \textcolor{comment}{//\ Записываем\ изменения\ и\ перезагружаем\ чип}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00115}00115\ \ \ res\_hal\ =\ HAL\_FLASH\_OB\_Launch();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00116}00116\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00117}00117\ \ \ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00118}00118\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00119}00119\ \ \ \textcolor{comment}{//\ Считываем\ текущую\ конфигурацию\ Option\ Bytes}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00120}00120\ \ \ HAL\_FLASHEx\_OBGetConfig(\&OBInit);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00121}00121\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00122}00122\ \textcolor{comment}{//\ Блокировка\ Option\ Bytes}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00123}00123\ \ \ res\_hal\ =\ HAL\_FLASH\_OB\_Lock();\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00124}00124\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00125}00125\ \ \ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00126}00126\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00127}00127\ \ \ res\_hal\ =\ HAL\_FLASH\_Lock();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00128}00128\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00129}00129\ \ \ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00130}00130\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00131}00131\ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00132}00132\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00133}00133\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/ELEMENTARY\ FUNCTIONS-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00134}00134\ \textcolor{comment}{/*\ functions\ for\ reading\ bytes/halswords/words\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00135}00135\ uint8\_t\ FLASH\_Read\_Byte(uint32\_t\ add)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00136}00136\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00137}00137\ \ \ \textcolor{keywordflow}{return}\ (*(\_\_IO\ uint8\_t*)(add));}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00138}00138\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00139}00139\ uint16\_t\ FLASH\_Read\_HalfWord(uint32\_t\ add)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00140}00140\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00141}00141\ \ \ \textcolor{keywordflow}{return}\ (*(\_\_IO\ uint16\_t*)(add));}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00142}00142\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00143}00143\ uint32\_t\ FLASH\_Read\_Word(uint32\_t\ add)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00144}00144\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00145}00145\ \ \ \textcolor{keywordflow}{return}\ (*(\_\_IO\ uint32\_t*)(add));}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00146}00146\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00147}00147\ \textcolor{comment}{/*\ functions\ for\ writing\ bytes/halswords/words\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00148}00148\ HAL\_StatusTypeDef\ FLASH\_Write\_Byte(uint32\_t\ Address,\ uint8\_t\ Data)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00149}00149\ \{\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00150}00150\ \ \ HAL\_StatusTypeDef\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00151}00151\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00152}00152\ \ \ res\_hal\ =\ HAL\_FLASH\_Unlock();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00153}00153\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00154}00154\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00155}00155\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00156}00156\ \ \ res\_hal\ =\ HAL\_FLASH\_Program(FLASH\_TYPEPROGRAM\_BYTE,\ Address,\ (uint8\_t)(Data));}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00157}00157\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00158}00158\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00159}00159\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00160}00160\ \ \ res\_hal\ =\ HAL\_FLASH\_Lock();\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00161}00161\ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00162}00162\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00163}00163\ HAL\_StatusTypeDef\ FLASH\_Write\_HalfWord(uint32\_t\ Address,\ uint16\_t\ Data)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00164}00164\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00165}00165\ \ \ HAL\_StatusTypeDef\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00166}00166\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00167}00167\ \ \ res\_hal\ =\ HAL\_FLASH\_Unlock();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00168}00168\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00169}00169\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00170}00170\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00171}00171\ \ \ res\_hal\ =\ HAL\_FLASH\_Program(FLASH\_TYPEPROGRAM\_HALFWORD,\ Address,\ (uint16\_t)(Data));}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00172}00172\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00173}00173\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00174}00174\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00175}00175\ \ \ res\_hal\ =\ HAL\_FLASH\_Lock();\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00176}00176\ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00177}00177\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00178}00178\ HAL\_StatusTypeDef\ FLASH\_Write\_Word(uint32\_t\ Address,\ uint32\_t\ Data)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00179}00179\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00180}00180\ \ \ HAL\_StatusTypeDef\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00181}00181\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00182}00182\ \ \ res\_hal\ =\ HAL\_FLASH\_Unlock();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00183}00183\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00184}00184\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00185}00185\ \ \ res\_hal\ =\ HAL\_FLASH\_Program(FLASH\_TYPEPROGRAM\_WORD,\ Address,\ (uint32\_t)(Data));\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00186}00186\ \ \ \textcolor{keywordflow}{if}\ (res\_hal\ !=\ HAL\_OK)\ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00187}00187\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00188}00188\ \ \ res\_hal\ =\ HAL\_FLASH\_Lock();\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00189}00189\ \ \ \textcolor{keywordflow}{return}\ res\_hal;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00190}00190\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00191}00191\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00192}00192\ }
|
||||
|
||||
\end{DoxyCode}
|
||||
68
Doc/latex/____general__flash_8h_source.tex
Normal file
68
Doc/latex/____general__flash_8h_source.tex
Normal file
@@ -0,0 +1,68 @@
|
||||
\doxysection{\+\_\+\+\_\+general\+\_\+flash.\+h}
|
||||
\hypertarget{____general__flash_8h_source}{}\label{____general__flash_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_flash.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_flash.h}}
|
||||
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00001}00001\ \textcolor{comment}{/*********************************UART**************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00002}00002\ \textcolor{comment}{Данный\ файл\ содержит\ объявления\ базовых\ функции\ и\ дефайны\ для\ инициализации\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00003}00003\ \textcolor{comment}{UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00004}00004\ \textcolor{comment}{***************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00005}00005\ \textcolor{preprocessor}{\#ifndef\ \_\_FLASH\_GENERAL\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00006}00006\ \textcolor{preprocessor}{\#define\ \_\_FLASH\_GENERAL\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00007}00007\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00008}00008\ \textcolor{comment}{//////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00009}00009\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00010}00010\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00011}00011\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00012}00012\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00013}00013\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00014}00014\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00015}00015\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00016}00016\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00017}00017\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00018}00018\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00019}00019\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00020}00020\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00021}00021\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00022}00022\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00023}00023\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00024}00024\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00025}00025\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00026}00026\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00027}00027\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00028}00028\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00029}00029\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00030}00030\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00031}00031\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00032}00032\ HAL\_StatusTypeDef\ FLASH\_Enable\_DualBankMode(\textcolor{keywordtype}{void});}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00033}00033\ HAL\_StatusTypeDef\ FLASH\_WriteProtection(uint32\_t\ BankN,\ uint32\_t\ WriteProtection);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00034}00034\ \textcolor{comment}{/*\ functions\ for\ reading\ bytes/halswords/words\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00035}00035\ uint8\_t\ FLASH\_Read\_Byte(uint32\_t\ add);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00036}00036\ uint16\_t\ FLASH\_Read\_HalfWord(uint32\_t\ add);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00037}00037\ uint32\_t\ FLASH\_Read\_Word(uint32\_t\ add);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00038}00038\ \textcolor{comment}{/*\ functions\ for\ writing\ bytes/halswords/words\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00039}00039\ HAL\_StatusTypeDef\ FLASH\_Write\_Byte(uint32\_t\ Address,\ uint8\_t\ Data);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00040}00040\ HAL\_StatusTypeDef\ FLASH\_Write\_HalfWord(uint32\_t\ Address,\ uint16\_t\ Data);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00041}00041\ HAL\_StatusTypeDef\ FLASH\_Write\_Word(uint32\_t\ Address,\ uint32\_t\ Data);\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00042}00042\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00043}00043\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00044}00044\ \textcolor{preprocessor}{\#ifndef\ LED\_PWM\_TICKS}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00045}00045\ \textcolor{preprocessor}{\#define\ LED\_PWM\_TICKS\ 15}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00046}00046\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00047}00047\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00048}00048\ \textcolor{preprocessor}{\#ifndef\ LED\_ON}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00049}00049\ \textcolor{preprocessor}{\#define\ LED\_ON\ 1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00050}00050\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00051}00051\ \textcolor{preprocessor}{\#ifndef\ LED\_OFF}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00052}00052\ \textcolor{preprocessor}{\#define\ LED\_OFF\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00053}00053\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00054}00054\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00055}00055\ \textcolor{preprocessor}{\#ifndef\ SW\_ON}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00056}00056\ \textcolor{preprocessor}{\#define\ SW\_ON\ 1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00057}00057\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00058}00058\ \textcolor{preprocessor}{\#ifndef\ SW\_OFF}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00059}00059\ \textcolor{preprocessor}{\#define\ SW\_OFF\ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00060}00060\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00061}00061\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00062}00062\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_FLASH\_GENERAL\_H\_}}
|
||||
|
||||
\end{DoxyCode}
|
||||
298
Doc/latex/____general__spi_8c_source.tex
Normal file
298
Doc/latex/____general__spi_8c_source.tex
Normal file
@@ -0,0 +1,298 @@
|
||||
\doxysection{\+\_\+\+\_\+general\+\_\+spi.\+c}
|
||||
\hypertarget{____general__spi_8c_source}{}\label{____general__spi_8c_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_spi.c@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_spi.c}}
|
||||
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00001}00001\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00002}00002\ \textcolor{comment}{\ \ **************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00003}00003\ \textcolor{comment}{\ \ *\ @file\ general\_spi.c}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00004}00004\ \textcolor{comment}{\ \ *\ @brief\ Модуль\ для\ инициализации\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00005}00005\ \textcolor{comment}{\ \ **************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00006}00006\ \textcolor{comment}{\ \ *\ //-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/Функции-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\///}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00007}00007\ \textcolor{comment}{\ \ *\ @verbatim}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00008}00008\ \textcolor{comment}{\ \ *\ Functions:\ users}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00009}00009\ \textcolor{comment}{\ \ *\ \ \ -\/\ SPI\_Base\_Init\ \ \ \ \ \ \ \ \ \ \ \ \ Инициализация\ SPI\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00010}00010\ \textcolor{comment}{\ \ *\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00011}00011\ \textcolor{comment}{\ \ *\ Functions:\ spi\ initialize}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00012}00012\ \textcolor{comment}{\ \ *\ \ \ -\/\ SPI\_GPIO\_Init\ \ \ \ \ \ \ \ \ \ \ \ \ Инициализация\ GPIO\ для\ SPI}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00013}00013\ \textcolor{comment}{\ \ *\ \ \ -\/\ SPI\_DMA\_Init\ \ \ \ \ \ \ \ \ \ \ \ \ \ Инициализация\ DMA\ для\ SPI}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00014}00014\ \textcolor{comment}{\ \ *\ \ \ -\/\ SPI\_MspInit\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Аналог\ HAL\_MspInit\ для\ SPI}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00015}00015\ \textcolor{comment}{\ \ *\ \ \ -\/\ SPI\_MspDeInit\ \ \ \ \ \ \ \ \ \ \ \ \ Аналог\ HAL\_MspDeInit\ для\ SPI}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00016}00016\ \textcolor{comment}{\ \ *\ @endverbatim}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00017}00017\ \textcolor{comment}{\ \ *************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00018}00018\ \textcolor{preprocessor}{\#include\ "{}general\_spi.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00019}00019\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{general__gpio_8h}{general\_gpio.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00020}00020\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00021}00021\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00022}00022\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/SPI\ INIT\ FUNCTIONS-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00023}00023\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00024}00024\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ SPI\ with\ SPI\_SettingsTypeDef\ structure.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00025}00025\ \textcolor{comment}{\ \ *\ @param\ \ sspi\ -\/\ указатель\ на\ структуру\ с\ настройками\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00026}00026\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00027}00027\ \textcolor{comment}{\ \ *\ @note\ \ \ SPI\_SettingsTypeDef\ структура\ содержит\ хендл\ SPI\ и\ настройки\ перефирии\ (GPIO)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00028}00028\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00029}00029\ HAL\_StatusTypeDef\ SPI\_Base\_Init(\mbox{\hyperlink{struct_s_p_i___settings_type_def}{SPI\_SettingsTypeDef}}\ *sspi)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00030}00030\ \{\ \textcolor{comment}{//\ function\ takes\ setting\ structure\ for\ init}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00031}00031\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00032}00032\ \ \ \textcolor{comment}{//\ check\ is\ settings\ are\ valid}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00033}00033\ \ \ \textcolor{keywordflow}{if}(Check\_SPI\_Init\_Struct(sspi)\ !=\ HAL\_OK)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00034}00034\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00035}00035\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00036}00036\ \ \ SPI\_MspInit(\&sspi-\/>hspi);\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00037}00037\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00038}00038\ \ \ \textcolor{keywordflow}{if}\ (HAL\_SPI\_Init(\&sspi-\/>hspi)\ !=\ HAL\_OK)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00039}00039\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00040}00040\ \ \ \ \ \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{MyLibs\_Error\_Handler}}();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00041}00041\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00042}00042\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00043}00043\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00044}00044\ \ \ \textcolor{comment}{//\ init\ gpio\ from\ SPISettings\ structure}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00045}00045\ \ \ SPI\_GPIO\_Init(sspi);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00046}00046\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00047}00047\ \textcolor{comment}{//\ \ //\ init\ dma\ from\ SPISettings\ structure\ if\ need}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00048}00048\ \textcolor{comment}{//\ \ if\ (sspi-\/>DMAChannel\ !=\ 0)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00049}00049\ \textcolor{comment}{//\ \ \ \ SPI\_DMA\_Init(\&sspi-\/>hspi,\ sspi-\/>hspi.hdmarx,\ sspi-\/>DMAChannel,\ sspi-\/>DMA\_CHANNEL\_X);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00050}00050\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00051}00051\ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00052}00052\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00053}00053\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00054}00054\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00055}00055\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00056}00056\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ GPIO\ for\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00057}00057\ \textcolor{comment}{\ \ *\ @param\ \ GPIOx\ \ \ \ \ \ \ -\/\ порт\ для\ настройки.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00058}00058\ \textcolor{comment}{\ \ *\ @param\ \ GPIO\_PIN\_RX\ -\/\ пин\ для\ настройки\ на\ прием.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00059}00059\ \textcolor{comment}{\ \ *\ @param\ \ GPIO\_PIN\_TX\ -\/\ пин\ для\ настройки\ на\ передачу.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00060}00060\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00061}00061\ \textcolor{keywordtype}{void}\ SPI\_GPIO\_Init(\mbox{\hyperlink{struct_s_p_i___settings_type_def}{SPI\_SettingsTypeDef}}\ *sspi)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00062}00062\ \{\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00063}00063\ \ \ GPIO\_InitTypeDef\ GPIO\_InitStruct\ =\ \{0\};\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00064}00064\ \ \ \textcolor{comment}{//\ GPIO\ INIT\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00065}00065\ \ \ \mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}{GPIO\_Clock\_Enable}}(sspi-\/>CLK\_GPIOx);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00066}00066\ \ \ \mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}{GPIO\_Clock\_Enable}}(sspi-\/>MISO\_GPIOx);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00067}00067\ \ \ \mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}{GPIO\_Clock\_Enable}}(sspi-\/>MOSI\_GPIOx);\ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00068}00068\ \ \ \ \ \textcolor{comment}{//\ CLK\ PIN\ INIT}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00069}00069\ \ \ GPIO\_InitStruct.Pin\ =\ sspi-\/>CLK\_PIN;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00070}00070\ \ \ GPIO\_InitStruct.Alternate\ =\ sspi-\/>CLK\_GPIO\_AlternageFunc;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00071}00071\ \ \ GPIO\_InitStruct.Mode\ =\ GPIO\_MODE\_AF\_PP;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00072}00072\ \ \ GPIO\_InitStruct.Pull\ =\ GPIO\_NOPULL;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00073}00073\ \ \ GPIO\_InitStruct.Speed\ =\ GPIO\_SPEED\_FREQ\_VERY\_HIGH;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00074}00074\ \ \ HAL\_GPIO\_Init(sspi-\/>CLK\_GPIOx,\ \&GPIO\_InitStruct);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00075}00075\ \ \ \textcolor{comment}{//\ MISO\ PIN\ INIT}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00076}00076\ \ \ GPIO\_InitStruct.Pin\ =\ sspi-\/>MISO\_PIN;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00077}00077\ \ \ GPIO\_InitStruct.Alternate\ =\ sspi-\/>MISO\_GPIO\_AlternageFunc;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00078}00078\ \ \ GPIO\_InitStruct.Mode\ =\ GPIO\_MODE\_AF\_PP;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00079}00079\ \ \ GPIO\_InitStruct.Pull\ =\ GPIO\_NOPULL;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00080}00080\ \ \ GPIO\_InitStruct.Speed\ =\ GPIO\_SPEED\_FREQ\_VERY\_HIGH;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00081}00081\ \ \ HAL\_GPIO\_Init(sspi-\/>MISO\_GPIOx,\ \&GPIO\_InitStruct);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00082}00082\ \ \ \textcolor{comment}{//\ MOSI\ PIN\ INIT}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00083}00083\ \ \ GPIO\_InitStruct.Pin\ =\ sspi-\/>MOSI\_PIN;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00084}00084\ \ \ GPIO\_InitStruct.Alternate\ =\ sspi-\/>MOSI\_GPIO\_AlternageFunc;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00085}00085\ \ \ GPIO\_InitStruct.Mode\ =\ GPIO\_MODE\_AF\_PP;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00086}00086\ \ \ GPIO\_InitStruct.Pull\ =\ GPIO\_NOPULL;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00087}00087\ \ \ GPIO\_InitStruct.Speed\ =\ GPIO\_SPEED\_FREQ\_VERY\_HIGH;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00088}00088\ \ \ HAL\_GPIO\_Init(sspi-\/>MOSI\_GPIOx,\ \&GPIO\_InitStruct);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00089}00089\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00090}00090\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00091}00091\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00092}00092\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ DMA\ for\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00093}00093\ \textcolor{comment}{\ \ *\ @param\ \ hspi\ \ \ \ \ \ \ \ -\/\ указатель\ на\ хендл\ SPI\ для\ настройки\ DMA.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00094}00094\ \textcolor{comment}{\ \ *\ @param\ \ hdma\_rx\ \ \ \ \ \ \ -\/\ указатель\ на\ хендл\ DMA\ для\ линии\ приема\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00095}00095\ \textcolor{comment}{\ \ *\ @param\ \ DMAChannel\ \ \ \ -\/\ указатель\ на\ канал\ DMA/поток\ DMA\ в\ STM32F407.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00096}00096\ \textcolor{comment}{\ \ *\ @param\ \ DMA\_CHANNEL\_X\ -\/\ канал\ DMA.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00097}00097\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00098}00098\ \textcolor{keywordtype}{void}\ SPI\_DMA\_Init(SPI\_HandleTypeDef\ *hspi,\ DMA\_HandleTypeDef\ *hdma\_rx,\ DMA\_Stream\_TypeDef\ *DMAChannel,\ uint32\_t\ DMA\_CHANNEL\_X)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00099}00099\ \{\ \textcolor{comment}{//\ function\ takes\ spi\ and\ dma\ handlers\ and\ dmachannel\ for\ spi}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00100}00100\ \textcolor{comment}{//\ \ //\ for\ now\ only\ dma\ rx\ is\ supported,\ tx\ maybe\ later\ if\ needed}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00101}00101\ \textcolor{comment}{//\ \ \ \ //\ calc\ defines\ on\ boot\_project\_setup.h}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00102}00102\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00103}00103\ \textcolor{comment}{//\ \ /*\ SPI3\ DMA\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00104}00104\ \textcolor{comment}{//\ \ /*\ SPI3\_RX\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00105}00105\ \textcolor{comment}{//\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00106}00106\ \textcolor{comment}{//\ \ hdma\_rx-\/>Instance\ =\ DMAChannel;}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00107}00107\ \textcolor{comment}{//\#if\ defined(STM32F407xx)\ //\ dma\ channel\ choose\ for\ 407}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00108}00108\ \textcolor{comment}{//\ \ hdma\_rx-\/>Init.Channel\ =\ DMA\_CHANNEL\_X;}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00109}00109\ \textcolor{comment}{//\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00110}00110\ \textcolor{comment}{//\ \ hdma\_rx-\/>Init.Direction\ =\ DMA\_PERIPH\_TO\_MEMORY;}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00111}00111\ \textcolor{comment}{//\ \ hdma\_rx-\/>Init.PeriphInc\ =\ DMA\_PINC\_DISABLE;}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00112}00112\ \textcolor{comment}{//\ \ hdma\_rx-\/>Init.MemInc\ =\ DMA\_MINC\_ENABLE;}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00113}00113\ \textcolor{comment}{//\ \ hdma\_rx-\/>Init.PeriphDataAlignment\ =\ DMA\_PDATAALIGN\_BYTE;}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00114}00114\ \textcolor{comment}{//\ \ hdma\_rx-\/>Init.MemDataAlignment\ =\ DMA\_MDATAALIGN\_BYTE;}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00115}00115\ \textcolor{comment}{//\ \ hdma\_rx-\/>Init.Mode\ =\ DMA\_CIRCULAR;}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00116}00116\ \textcolor{comment}{//\ \ hdma\_rx-\/>Init.Priority\ =\ DMA\_PRIORITY\_LOW;}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00117}00117\ \textcolor{comment}{//\ \ if\ (HAL\_DMA\_Init(hdma\_rx)\ !=\ HAL\_OK)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00118}00118\ \textcolor{comment}{//\ \ \{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00119}00119\ \textcolor{comment}{//\ \ \ \ MyLibs\_Error\_Handler();}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00120}00120\ \textcolor{comment}{//\ \ \}}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00121}00121\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00122}00122\ \textcolor{comment}{//\ \ \_\_USER\_LINKDMA(hspi,hdmarx,hdma\_rx);\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00123}00123\ \textcolor{comment}{//\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00124}00124\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00125}00125\ \textcolor{comment}{//\ \ //\ \_\_USER\_LINKDMA\ is\ need\ because\ \_\_HAL\_LINKDMA\ is\ written\ for\ global\ defined\ hdma\_rx}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00126}00126\ \textcolor{comment}{//\ \ //\ so\ you\ get\ error\ because\ hal\ uses\ .\ insted\ of\ -\/>}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00127}00127\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00128}00128\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00129}00129\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00130}00130\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ SPI\ \&\ DMA\ clock\ and\ interrupt.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00131}00131\ \textcolor{comment}{\ \ *\ @param\ \ hspi\ -\/\ указатель\ на\ хендл\ SPI\ для\ инициализации.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00132}00132\ \textcolor{comment}{\ \ *\ @note\ \ \ Чтобы\ не\ генерировать\ функцию\ с\ иницилизацией\ неиспользуемых\ SPI,}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00133}00133\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ дефайнами\ в\ general\_spi.h\ определяются\ используемые\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00134}00134\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00135}00135\ \textcolor{keywordtype}{void}\ SPI\_MspInit(SPI\_HandleTypeDef\ *hspi)\ \textcolor{comment}{//\ analog\ for\ hal\ function}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00136}00136\ \{\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00137}00137\ \ \ \textcolor{comment}{//\ rcc,\ dma\ and\ interrupt\ init\ for\ SPIs}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00138}00138\ \ \ \textcolor{comment}{//\ GPIO\ init\ was\ moved\ to\ own\ functions\ SPI\_GPIO\_Init\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00139}00139\ \ \ \textcolor{keywordflow}{if}(0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00140}00140\ \textcolor{preprocessor}{\#ifdef\ USE\_SPI1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00141}00141\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(hspi-\/>Instance==SPI1)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00142}00142\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00143}00143\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00144}00144\ \textcolor{comment}{//\ \ /*\ DMA2\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00145}00145\ \textcolor{comment}{//\ \ \_\_HAL\_RCC\_DMA2\_CLK\_ENABLE();}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00146}00146\ \textcolor{comment}{//\ \ /*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00147}00147\ \textcolor{comment}{//\ \ HAL\_NVIC\_SetPriority(DMA2\_Stream2\_IRQn,\ 0,\ 0);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00148}00148\ \textcolor{comment}{//\ \ HAL\_NVIC\_EnableIRQ(DMA2\_Stream2\_IRQn);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00149}00149\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00150}00150\ \ \ \textcolor{comment}{/*\ SPI1\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00151}00151\ \ \ \_\_HAL\_RCC\_SPI1\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00152}00152\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00153}00153\ \ \ \textcolor{comment}{/*\ SPI1\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00154}00154\ \ \ HAL\_NVIC\_SetPriority(SPI1\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00155}00155\ \ \ HAL\_NVIC\_EnableIRQ(SPI1\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00156}00156\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00157}00157\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_SPI1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00158}00158\ \textcolor{preprocessor}{\#ifdef\ USE\_SPI2}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00159}00159\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(hspi-\/>Instance==SPI2)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00160}00160\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00161}00161\ \textcolor{comment}{//\ \ /*\ DMA1\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00162}00162\ \textcolor{comment}{//\ \ \_\_HAL\_RCC\_DMA1\_CLK\_ENABLE();}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00163}00163\ \textcolor{comment}{//\ \ /*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00164}00164\ \textcolor{comment}{//\ \ HAL\_NVIC\_SetPriority(DMA1\_Stream5\_IRQn,\ 0,\ 0);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00165}00165\ \textcolor{comment}{//\ \ HAL\_NVIC\_EnableIRQ(DMA1\_Stream5\_IRQn);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00166}00166\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00167}00167\ \ \ \textcolor{comment}{/*\ SPI2\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00168}00168\ \ \ \_\_HAL\_RCC\_SPI2\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00169}00169\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00170}00170\ \ \ \textcolor{comment}{/*\ SPI2\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00171}00171\ \ \ HAL\_NVIC\_SetPriority(SPI2\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00172}00172\ \ \ HAL\_NVIC\_EnableIRQ(SPI2\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00173}00173\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00174}00174\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_SPI2}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00175}00175\ \textcolor{preprocessor}{\#ifdef\ USE\_SPI3}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00176}00176\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(hspi-\/>Instance==SPI3)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00177}00177\ \ \ \{\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00178}00178\ \textcolor{comment}{//\ \ /*\ DMA1\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00179}00179\ \textcolor{comment}{//\ \ \_\_HAL\_RCC\_DMA1\_CLK\_ENABLE();}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00180}00180\ \textcolor{comment}{//\ \ /*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00181}00181\ \textcolor{comment}{//\ \ HAL\_NVIC\_SetPriority(DMA1\_Stream1\_IRQn,\ 0,\ 0);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00182}00182\ \textcolor{comment}{//\ \ HAL\_NVIC\_EnableIRQ(DMA1\_Stream1\_IRQn);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00183}00183\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00184}00184\ \ \ \textcolor{comment}{/*\ SPI3\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00185}00185\ \ \ \_\_HAL\_RCC\_SPI3\_CLK\_ENABLE();\ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00186}00186\ \ \ \textcolor{comment}{/*\ SPI3\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00187}00187\ \ \ HAL\_NVIC\_SetPriority(SPI3\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00188}00188\ \ \ HAL\_NVIC\_EnableIRQ(SPI3\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00189}00189\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00190}00190\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_SPI3}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00191}00191\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00192}00192\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00193}00193\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00194}00194\ \textcolor{comment}{\ \ *\ @brief\ \ Deinitialize\ SPI\ \&\ DMA\ clock\ and\ interrupt.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00195}00195\ \textcolor{comment}{\ \ *\ @param\ \ hspi\ -\/\ указатель\ на\ хендл\ SPI\ для\ деинициализации.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00196}00196\ \textcolor{comment}{\ \ *\ @note\ \ \ Чтобы\ не\ генерировать\ функцию\ с\ деиницилизацией\ неиспользуемых\ SPI,}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00197}00197\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ дефайнами\ определяются\ используемые\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00198}00198\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00199}00199\ \textcolor{keywordtype}{void}\ SPI\_MspDeInit(SPI\_HandleTypeDef\ *hspi)\ \textcolor{comment}{//\ analog\ for\ hal\ function}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00200}00200\ \{\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00201}00201\ \ \ \textcolor{comment}{//\ rcc,\ dma\ and\ interrupt\ init\ for\ SPIs}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00202}00202\ \ \ \textcolor{comment}{//\ GPIO\ init\ was\ moved\ to\ own\ functions\ SPI\_GPIO\_Init\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00203}00203\ \ \ \textcolor{keywordflow}{if}(0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00204}00204\ \textcolor{preprocessor}{\#ifdef\ USE\_SPI1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00205}00205\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(hspi-\/>Instance==SPI1)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00206}00206\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00207}00207\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00208}00208\ \textcolor{comment}{//\ \ /*\ DMA2\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00209}00209\ \textcolor{comment}{//\ \ \_\_HAL\_RCC\_DMA2\_CLK\_ENABLE();}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00210}00210\ \textcolor{comment}{//\ \ /*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00211}00211\ \textcolor{comment}{//\ \ HAL\_NVIC\_SetPriority(DMA2\_Stream2\_IRQn,\ 0,\ 0);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00212}00212\ \textcolor{comment}{//\ \ HAL\_NVIC\_EnableIRQ(DMA2\_Stream2\_IRQn);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00213}00213\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00214}00214\ \ \ \textcolor{comment}{/*\ SPI1\ clock\ reset\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00215}00215\ \ \ \_\_HAL\_RCC\_SPI1\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00216}00216\ \ \ \_\_HAL\_RCC\_SPI1\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00217}00217\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00218}00218\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_SPI1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00219}00219\ \textcolor{preprocessor}{\#ifdef\ USE\_SPI2}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00220}00220\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(hspi-\/>Instance==SPI2)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00221}00221\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00222}00222\ \textcolor{comment}{//\ \ /*\ DMA1\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00223}00223\ \textcolor{comment}{//\ \ \_\_HAL\_RCC\_DMA1\_CLK\_ENABLE();}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00224}00224\ \textcolor{comment}{//\ \ /*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00225}00225\ \textcolor{comment}{//\ \ HAL\_NVIC\_SetPriority(DMA1\_Stream5\_IRQn,\ 0,\ 0);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00226}00226\ \textcolor{comment}{//\ \ HAL\_NVIC\_EnableIRQ(DMA1\_Stream5\_IRQn);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00227}00227\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00228}00228\ \ \ \textcolor{comment}{/*\ SPI2\ clock\ reset\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00229}00229\ \ \ \_\_HAL\_RCC\_SPI2\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00230}00230\ \ \ \_\_HAL\_RCC\_SPI2\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00231}00231\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00232}00232\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_SPI2}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00233}00233\ \textcolor{preprocessor}{\#ifdef\ USE\_SPI3}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00234}00234\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(hspi-\/>Instance==SPI3)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00235}00235\ \ \ \{\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00236}00236\ \textcolor{comment}{//\ \ /*\ DMA1\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00237}00237\ \textcolor{comment}{//\ \ \_\_HAL\_RCC\_DMA1\_CLK\_ENABLE();}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00238}00238\ \textcolor{comment}{//\ \ /*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00239}00239\ \textcolor{comment}{//\ \ HAL\_NVIC\_SetPriority(DMA1\_Stream1\_IRQn,\ 0,\ 0);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00240}00240\ \textcolor{comment}{//\ \ HAL\_NVIC\_EnableIRQ(DMA1\_Stream1\_IRQn);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00241}00241\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00242}00242\ \ \ \textcolor{comment}{/*\ SPI3\ clock\ reset\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00243}00243\ \ \ \_\_HAL\_RCC\_SPI3\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00244}00244\ \ \ \_\_HAL\_RCC\_SPI3\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00245}00245\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00246}00246\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_SPI3}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00247}00247\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00248}00248\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00249}00249\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00250}00250\ \textcolor{comment}{\ \ *\ @brief\ \ Check\ that\ spi\ init\ structure\ have\ correct\ values.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00251}00251\ \textcolor{comment}{\ \ *\ @param\ \ sspi\ -\/\ указатель\ на\ структуру\ с\ настройками\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00252}00252\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00253}00253\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00254}00254\ HAL\_StatusTypeDef\ Check\_SPI\_Init\_Struct(\mbox{\hyperlink{struct_s_p_i___settings_type_def}{SPI\_SettingsTypeDef}}\ *sspi)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00255}00255\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00256}00256\ \ \ \textcolor{comment}{//\ check\ is\ settings\ are\ valid}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00257}00257\ \ \ \textcolor{keywordflow}{if}\ (!IS\_SPI\_ALL\_INSTANCE(sspi-\/>hspi.Instance))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00258}00258\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00259}00259\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00260}00260\ \ \ \textcolor{comment}{//\ check\ init\ settings}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00261}00261\ \ \ \textcolor{keywordflow}{if}\ (!IS\_SPI\_MODE(sspi-\/>hspi.Init.Mode))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00262}00262\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00263}00263\ \ \ \textcolor{keywordflow}{if}\ (!IS\_SPI\_DIRECTION(sspi-\/>hspi.Init.Direction))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00264}00264\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00265}00265\ \ \ \textcolor{keywordflow}{if}\ (!IS\_SPI\_DATASIZE(sspi-\/>hspi.Init.DataSize))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00266}00266\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00267}00267\ \ \ \textcolor{keywordflow}{if}\ (!IS\_SPI\_BAUDRATE\_PRESCALER(sspi-\/>hspi.Init.BaudRatePrescaler))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00268}00268\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00269}00269\ \ \ \textcolor{keywordflow}{if}\ (!IS\_SPI\_CPOL(sspi-\/>hspi.Init.CLKPolarity))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00270}00270\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00271}00271\ \ \ \textcolor{keywordflow}{if}\ (!IS\_SPI\_CPHA(sspi-\/>hspi.Init.CLKPhase))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00272}00272\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00273}00273\ \ \ \textcolor{keywordflow}{if}\ (!IS\_SPI\_NSS(sspi-\/>hspi.Init.NSS))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00274}00274\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00275}00275\ \ \ \textcolor{keywordflow}{if}\ (!IS\_SPI\_FIRST\_BIT(sspi-\/>hspi.Init.FirstBit))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00276}00276\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00277}00277\ \ \ \textcolor{keywordflow}{if}\ (!IS\_SPI\_CRC\_CALCULATION(sspi-\/>hspi.Init.CRCCalculation))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00278}00278\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00279}00279\ \ \ \textcolor{keywordflow}{if}\ (!IS\_SPI\_CRC\_POLYNOMIAL(sspi-\/>hspi.Init.NSS)\ \&\&\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00280}00280\ \ \ \ \ (sspi-\/>hspi.Init.CRCCalculation\ !=\ SPI\_CRCCALCULATION\_DISABLE))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00281}00281\ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00282}00282\ \ \ \textcolor{keywordflow}{if}\ (!IS\_SPI\_TIMODE(sspi-\/>hspi.Init.TIMode))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00283}00283\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00284}00284\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00285}00285\ \ \ \textcolor{comment}{//\ check\ gpio}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00286}00286\ \ \ \textcolor{keywordflow}{if}\ (!IS\_GPIO\_ALL\_INSTANCE(sspi-\/>CLK\_GPIOx)\ ||\ !IS\_GPIO\_ALL\_INSTANCE(sspi-\/>MISO\_GPIOx)\ ||\ !IS\_GPIO\_ALL\_INSTANCE(sspi-\/>MOSI\_GPIOx))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00287}00287\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00288}00288\ \ \ \textcolor{keywordflow}{if}\ (!IS\_GPIO\_PIN(sspi-\/>CLK\_PIN)\ \&\&\ !IS\_GPIO\_PIN(sspi-\/>MISO\_PIN)\ \&\&\ !IS\_GPIO\_PIN(sspi-\/>MOSI\_PIN))\ \textcolor{comment}{//\ if\ both\ pins\ arent\ set\ up}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00289}00289\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00290}00290\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00291}00291\ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00292}00292\ \}}
|
||||
|
||||
\end{DoxyCode}
|
||||
106
Doc/latex/____general__spi_8h_source.tex
Normal file
106
Doc/latex/____general__spi_8h_source.tex
Normal file
@@ -0,0 +1,106 @@
|
||||
\doxysection{\+\_\+\+\_\+general\+\_\+spi.\+h}
|
||||
\hypertarget{____general__spi_8h_source}{}\label{____general__spi_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_spi.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_spi.h}}
|
||||
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00001}00001\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00002}00002\ \textcolor{comment}{\ \ **************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00003}00003\ \textcolor{comment}{\ \ *\ @file\ general\_spi.h}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00004}00004\ \textcolor{comment}{\ \ *\ @brief\ Заголовочны\ файл\ модуля\ инициализации\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00005}00005\ \textcolor{comment}{\ \ *************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00006}00006\ \textcolor{preprocessor}{\#ifndef\ \_\_SPI\_GENERAL\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00007}00007\ \textcolor{preprocessor}{\#define\ \_\_SPI\_GENERAL\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00008}00008\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00009}00009\ \textcolor{comment}{//////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00010}00010\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00011}00011\ \textcolor{preprocessor}{\#define\ HAL\_SPI\_MODULE\_ENABLED\ \ }\textcolor{comment}{//\ need\ to\ uncomment\ these\ defines\ in\ stm32f4xx\_hal\_conf.h}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00012}00012\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ also\ need\ to\ add\ hal\_spi.c\ (source\ code)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00013}00013\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00014}00014\ \textcolor{preprocessor}{\#define\ USE\_SPI1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00015}00015\ \textcolor{preprocessor}{\#define\ USE\_SPI2}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00016}00016\ \textcolor{preprocessor}{\#define\ USE\_SPI3}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00017}00017\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00018}00018\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00019}00019\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00020}00020\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00021}00021\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00022}00022\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00023}00023\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00024}00024\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00025}00025\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00026}00026\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00027}00027\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00028}00028\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00029}00029\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00030}00030\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00031}00031\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00032}00032\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00033}\mbox{\hyperlink{struct_s_p_i___settings_type_def}{00033}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\textcolor{comment}{//\ struct\ with\ settings\ for\ custom\ function}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00034}00034\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00035}00035\ \ \ SPI\_HandleTypeDef\ hspi;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00036}00036\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00037}00037\ \ \ GPIO\_TypeDef\ \ *CLK\_GPIOx;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00038}00038\ \ \ uint32\_t\ \ \ \ \ \ CLK\_PIN;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00039}00039\ \ \ uint32\_t\ \ \ \ \ \ CLK\_GPIO\_AlternageFunc;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00040}00040\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00041}00041\ \ \ GPIO\_TypeDef\ \ *MISO\_GPIOx;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00042}00042\ \ \ uint32\_t\ \ \ \ \ \ MISO\_PIN;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00043}00043\ \ \ uint32\_t\ \ \ \ \ \ MISO\_GPIO\_AlternageFunc;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00044}00044\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00045}00045\ \ \ GPIO\_TypeDef\ \ *MOSI\_GPIOx;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00046}00046\ \ \ uint32\_t\ \ \ \ \ \ MOSI\_PIN;\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00047}00047\ \ \ uint32\_t\ \ \ \ \ \ MOSI\_GPIO\_AlternageFunc;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00048}00048\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00049}00049\ \}\mbox{\hyperlink{struct_s_p_i___settings_type_def}{SPI\_SettingsTypeDef}};\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00050}00050\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00051}00051\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00052}00052\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00053}00053\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00054}00054\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00055}00055\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00056}00056\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ SPI\ with\ SPI\_SettingsTypeDef\ structure.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00057}00057\ \textcolor{comment}{\ \ *\ @param\ \ sspi\ -\/\ указатель\ на\ структуру\ с\ настройками\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00058}00058\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00059}00059\ \textcolor{comment}{\ \ *\ @note\ \ \ Данная\ структура\ содержит\ хендл\ ЮАРТ\ и\ настройки\ перефирии\ (GPIO)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00060}00060\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00061}00061\ HAL\_StatusTypeDef\ SPI\_Base\_Init(\mbox{\hyperlink{struct_s_p_i___settings_type_def}{SPI\_SettingsTypeDef}}\ *sspi);\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00062}00062\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00063}00063\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ GPIO\ for\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00064}00064\ \textcolor{comment}{\ \ *\ @param\ \ GPIOx\ \ \ \ \ \ \ -\/\ порт\ для\ настройки.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00065}00065\ \textcolor{comment}{\ \ *\ @param\ \ GPIO\_PIN\_RX\ -\/\ пин\ для\ настройки\ на\ прием.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00066}00066\ \textcolor{comment}{\ \ *\ @param\ \ GPIO\_PIN\_TX\ -\/\ пин\ для\ настройки\ на\ передачу.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00067}00067\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00068}00068\ \textcolor{keywordtype}{void}\ SPI\_GPIO\_Init(\mbox{\hyperlink{struct_s_p_i___settings_type_def}{SPI\_SettingsTypeDef}}\ *sspi);\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00069}00069\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00070}00070\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ DMA\ for\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00071}00071\ \textcolor{comment}{\ \ *\ @param\ \ hspi\ \ \ \ \ \ \ \ -\/\ указатель\ на\ хендл\ SPI\ для\ настройки\ DMA.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00072}00072\ \textcolor{comment}{\ \ *\ @param\ \ hdma\_rx\ \ \ \ \ \ \ -\/\ указатель\ на\ хендл\ DMA\ для\ линии\ приема\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00073}00073\ \textcolor{comment}{\ \ *\ @param\ \ DMAChannel\ \ \ \ -\/\ указатель\ на\ канал\ DMA/поток\ DMA\ в\ STM32F407.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00074}00074\ \textcolor{comment}{\ \ *\ @param\ \ DMA\_CHANNEL\_X\ -\/\ канал\ DMA.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00075}00075\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00076}00076\ \textcolor{keywordtype}{void}\ SPI\_DMA\_Init(SPI\_HandleTypeDef\ *hspi,\ DMA\_HandleTypeDef\ *hdma\_rx,\ DMA\_Stream\_TypeDef\ *DMAChannel,\ uint32\_t\ DMA\_CHANNEL\_X);\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00077}00077\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00078}00078\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ SPI\ \&\ DMA\ clock\ and\ interrupt.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00079}00079\ \textcolor{comment}{\ \ *\ @param\ \ hspi\ -\/\ указатель\ на\ хендл\ SPI\ для\ инициализации.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00080}00080\ \textcolor{comment}{\ \ *\ @note\ \ \ Чтобы\ не\ генерировать\ функцию\ с\ иницилизацией\ неиспользуемых\ SPI,}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00081}00081\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ дефайнами\ определяются\ используемые\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00082}00082\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00083}00083\ \textcolor{keywordtype}{void}\ SPI\_MspInit(SPI\_HandleTypeDef\ *hspi);\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00084}00084\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00085}00085\ \textcolor{comment}{\ \ *\ @brief\ \ Deinitialize\ SPI\ \&\ DMA\ clock\ and\ interrupt.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00086}00086\ \textcolor{comment}{\ \ *\ @param\ \ hspi\ -\/\ указатель\ на\ хендл\ SPI\ для\ деинициализации.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00087}00087\ \textcolor{comment}{\ \ *\ @note\ \ \ Чтобы\ не\ генерировать\ функцию\ с\ деиницилизацией\ неиспользуемых\ SPI,}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00088}00088\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ дефайнами\ в\ rs\_message.h\ определяются\ используемые\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00089}00089\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00090}00090\ \textcolor{keywordtype}{void}\ SPI\_MspDeInit(SPI\_HandleTypeDef\ *hspi);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00091}00091\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00092}00092\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00093}00093\ \textcolor{comment}{\ \ *\ @brief\ \ Check\ that\ spi\ init\ structure\ have\ correct\ values.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00094}00094\ \textcolor{comment}{\ \ *\ @param\ \ sspi\ -\/\ указатель\ на\ структуру\ с\ настройками\ SPI.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00095}00095\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00096}00096\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00097}00097\ HAL\_StatusTypeDef\ Check\_SPI\_Init\_Struct(\mbox{\hyperlink{struct_s_p_i___settings_type_def}{SPI\_SettingsTypeDef}}\ *sspi);\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00098}00098\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00099}00099\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00100}00100\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_SPI\_GENERAL\_H\_}}
|
||||
|
||||
\end{DoxyCode}
|
||||
663
Doc/latex/____general__tim_8c_source.tex
Normal file
663
Doc/latex/____general__tim_8c_source.tex
Normal file
@@ -0,0 +1,663 @@
|
||||
\doxysection{\+\_\+\+\_\+general\+\_\+tim.\+c}
|
||||
\hypertarget{____general__tim_8c_source}{}\label{____general__tim_8c_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_tim.c@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_tim.c}}
|
||||
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00001}00001\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00002}00002\ \textcolor{comment}{\ \ **************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00003}00003\ \textcolor{comment}{\ \ *\ @file\ general\_tim.c}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00004}00004\ \textcolor{comment}{\ \ *\ @brief\ Модуль\ для\ инициализации\ таймеров.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00005}00005\ \textcolor{comment}{\ \ **************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00006}00006\ \textcolor{comment}{\ \ @verbatim}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00007}00007\ \textcolor{comment}{\ \ //-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/Функции-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\///}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00008}00008\ \textcolor{comment}{\ \ Functions:\ user\ init}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00009}00009\ \textcolor{comment}{\ \ \ \ -\/\ TIM\_Base\_Init\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Инициализация\ TIM}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00010}00010\ \textcolor{comment}{\ \ \ \ -\/\ TIM\_Encoder\_Init\ \ \ \ \ \ \ \ \ \ \ \ \ \ Инициализация\ режима\ энкодера}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00011}00011\ \textcolor{comment}{\ \ \ \ -\/\ TIM\_Output\_PWM\_Init\ \ \ \ \ \ \ \ \ \ \ Инициализация\ PWM\ с\ выводом\ на\ GPIO}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00012}00012\ \textcolor{comment}{\ \ \ \ -\/\ TIM\_OC\_Comparator\_Init\ \ \ \ \ \ \ \ Инициализация\ TIM\ как\ компаратора}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00013}00013\ \textcolor{comment}{\ \ \ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00014}00014\ \textcolor{comment}{\ \ Functions:\ user}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00015}00015\ \textcolor{comment}{\ \ \ \ -\/\ TIM\_Delay\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Задержка\ с\ помощью\ TIM}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00016}00016\ \textcolor{comment}{\ \ \ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00017}00017\ \textcolor{comment}{\ \ Functions:\ tim\ initialize}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00018}00018\ \textcolor{comment}{\ \ \ \ -\/\ TIM\_Base\_MspInit\ \ \ \ \ \ \ \ \ \ \ \ \ \ Аналог\ HAL\_MspInit\ для\ таймера}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00019}00019\ \textcolor{comment}{\ \ \ \ -\/\ TIM\_Base\_MspDeInit\ \ \ \ \ \ \ \ \ \ \ \ Аналог\ HAL\_MspDeInit\ для\ таймера}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00020}00020\ \textcolor{comment}{\ \ @endverbatim}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00021}00021\ \textcolor{comment}{\ \ *************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00022}00022\ \textcolor{preprocessor}{\#include\ "{}general\_tim.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00023}00023\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{general__gpio_8h}{general\_gpio.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00024}00024\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00025}00025\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00026}00026\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/TIM\ INIT\ FUNCTIONS-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ }\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00027}00027\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00028}00028\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ TIM\ with\ TIM\_SettingsTypeDef\ structure.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00029}00029\ \textcolor{comment}{\ \ *\ @param\ \ stim\ -\/\ указатель\ на\ структуру\ с\ настройками\ таймера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00030}00030\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00031}00031\ \textcolor{comment}{\ \ *\ @note\ \ \ Данная\ структура\ содержит\ хендл\ таймера\ и\ структуры\ для\ его\ настройки.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00032}00032\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00033}00033\ HAL\_StatusTypeDef\ TIM\_Base\_Init(\mbox{\hyperlink{struct_t_i_m___settings_type_def}{TIM\_SettingsTypeDef}}\ *stim)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00034}00034\ \{\ \textcolor{comment}{//\ function\ takes\ structure\ for\ init}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00035}00035\ \ \ \textcolor{comment}{//\ check\ that\ htim\ is\ defined}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00036}00036\ \ \ \textcolor{keywordflow}{if}\ (stim-\/>htim.Instance\ ==\ NULL)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00037}00037\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00038}00038\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00039}00039\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00040}00040\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00041}00041\ \ \ \textcolor{keywordflow}{if}(stim-\/>sTickBaseUS)\ \textcolor{comment}{//\ if\ tickbase\ isnt\ disable}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00042}00042\ \ \ \{\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00043}00043\ \ \ \ \ \textcolor{keywordflow}{if}(stim-\/>sTimAHBFreqMHz\ ==\ NULL)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00044}00044\ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00045}00045\ \ \ \ \ stim-\/>htim.Init.Prescaler\ =\ (stim-\/>sTimAHBFreqMHz*stim-\/>sTickBaseUS)\ -\/\ 1;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00046}00046\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00047}00047\ \ \ \ \ \textcolor{keywordflow}{if}\ ((stim-\/>sTimFreqHz\ !=\ NULL))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00048}00048\ \ \ \ \ \ \ stim-\/>htim.Init.Period\ =\ ((1000000/stim-\/>sTickBaseUS)\ /\ stim-\/>sTimFreqHz)\ -\/\ 1;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00049}00049\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (stim-\/>htim.Init.Period\ ==\ NULL)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00050}00050\ \ \ \ \ \ \ stim-\/>htim.Init.Period\ =\ 0xFFFF;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00051}00051\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00052}00052\ \ \ \ \ \textcolor{keywordflow}{if}(stim-\/>sTickBasePrescaler)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00053}00053\ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00054}00054\ \ \ \ \ \ \ stim-\/>htim.Init.Prescaler\ =\ (stim-\/>htim.Init.Prescaler\ +\ 1)/stim-\/>sTickBasePrescaler\ -\/\ 1;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00055}00055\ \ \ \ \ \ \ stim-\/>htim.Init.Period\ \ \ \ =\ (stim-\/>htim.Init.Period\ +\ 1)*stim-\/>sTickBasePrescaler\ -\/\ 1;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00056}00056\ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00057}00057\ \ \ \ \ \textcolor{keywordflow}{else}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00058}00058\ \ \ \ \ \ \ stim-\/>sTickBasePrescaler\ =\ 1;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00059}00059\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00060}00060\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00061}00061\ \ \ \textcolor{comment}{//\ fix\ overflow\ of\ presc\ and\ period\ if\ need}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00062}00062\ \ \ \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int}\ i\ =\ 0;\ (stim-\/>htim.Init.Prescaler\ >\ 0xFFFF)\ ||\ (stim-\/>htim.Init.Period\ >\ 0xFFFF);\ i++)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00063}00063\ \ \ \{\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00064}00064\ \ \ \ \ \textcolor{keywordflow}{if}\ (i>10)\ \textcolor{comment}{//\ if\ it\ isnt\ fixed\ after\ 10\ itteration\ -\/\ return\ HAL\_ERRPOR}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00065}00065\ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00066}00066\ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00067}00067\ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00068}00068\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00069}00069\ \ \ \ \ \textcolor{comment}{//\ if\ timbase\ is\ too\ big\ (prescaller\ too\ big\ for\ choosen\ base\ from\ MHZ)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00070}00070\ \ \ \ \ \textcolor{keywordflow}{if}(stim-\/>htim.Init.Prescaler\ >\ 0xFFFF)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00071}00071\ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00072}00072\ \ \ \ \ \ \ \textcolor{comment}{//\ переносим\ часть\ пресскалера\ в\ период}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00073}00073\ \ \ \ \ \ \ stim-\/>htim.Init.Prescaler\ =\ ((stim-\/>htim.Init.Prescaler\ +\ 1)/2)\ -\/\ 1;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00074}00074\ \ \ \ \ \ \ stim-\/>htim.Init.Period\ =\ ((stim-\/>htim.Init.Period\ +\ 1)*2)\ -\/\ 1;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00075}00075\ \ \ \ \ \ \ \textcolor{comment}{//\ обновляем\ TickBase,\ если\ есть\ куда\ обновлять}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00076}00076\ \ \ \ \ \ \ \textcolor{keywordflow}{if}(stim-\/>sTickBaseUS\ >\ 1)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00077}00077\ \ \ \ \ \ \ \ \ stim-\/>sTickBaseUS\ /=\ 2;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00078}00078\ \ \ \ \ \ \ \textcolor{comment}{//\ обновляем\ sTickBasePrescaler,\ если\ sTickBaseUS\ -\/\ уже\ в\ минимуме}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00079}00079\ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (stim-\/>sTickBaseUS\ ==\ 1)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00080}00080\ \ \ \ \ \ \ \ \ stim-\/>sTickBasePrescaler\ *=\ 2;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00081}00081\ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{comment}{//\ if\ TickBase\ =\ 0\ -\/\ return\ error}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00082}00082\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00083}00083\ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00084}00084\ \ \ \ \ \textcolor{comment}{//\ if\ freq\ is\ too\ low\ (period\ too\ big\ for\ choosen\ base)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00085}00085\ \ \ \ \ \textcolor{keywordflow}{if}(stim-\/>htim.Init.Period\ >\ 0xFFFF)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00086}00086\ \ \ \ \ \{\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00087}00087\ \ \ \ \ \ \ \textcolor{comment}{//\ переносим\ часть\ периода\ в\ прескалер}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00088}00088\ \ \ \ \ \ \ stim-\/>htim.Init.Period\ =\ ((stim-\/>htim.Init.Period\ +\ 1)/2)\ -\/\ 1;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00089}00089\ \ \ \ \ \ \ stim-\/>htim.Init.Prescaler\ =\ ((stim-\/>htim.Init.Prescaler\ +\ 1)*2)\ -\/\ 1;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00090}00090\ \ \ \ \ \ \ \textcolor{comment}{//\ обновляем\ TickBase}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00091}00091\ \ \ \ \ \ \ stim-\/>sTickBaseUS\ *=\ 2;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00092}00092\ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00093}00093\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00094}00094\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00095}00095\ \ \ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/TIM\ BASE\ INIT-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00096}00096\ \ \ \textcolor{comment}{//\ tim\ base\ init\ \ \ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00097}00097\ \ \ TIM\_Base\_MspInit(\&stim-\/>htim,\ stim-\/>sTimMode);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00098}00098\ \ \ \textcolor{keywordflow}{if}\ (HAL\_TIM\_Base\_Init(\&stim-\/>htim)\ !=\ HAL\_OK)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00099}00099\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00100}00100\ \ \ \ \ \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{MyLibs\_Error\_Handler}}();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00101}00101\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00102}00102\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00103}00103\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00104}00104\ \ \ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/CLOCK\ SRC\ INIT-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00105}00105\ \ \ \textcolor{comment}{//\ fill\ sClockSourceConfig\ if\ its\ NULL}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00106}00106\ \ \ \textcolor{keywordflow}{if}\ (stim-\/>sClockSourceConfig.ClockSource\ ==\ NULL)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00107}00107\ \ \ \ \ stim-\/>sClockSourceConfig.ClockSource\ =\ TIM\_CLOCKSOURCE\_INTERNAL;\ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00108}00108\ \ \ \textcolor{comment}{//\ clock\ source\ init\ \ \ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00109}00109\ \ \ \textcolor{keywordflow}{if}\ (HAL\_TIM\_ConfigClockSource(\&stim-\/>htim,\ \&stim-\/>sClockSourceConfig)\ !=\ HAL\_OK)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00110}00110\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00111}00111\ \ \ \ \ \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{MyLibs\_Error\_Handler}}();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00112}00112\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00113}00113\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00114}00114\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00115}00115\ \ \ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/SLAVE\ INIT-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00116}00116\ \ \ \textcolor{comment}{//\ if\ slave\ mode\ enables\ -\/\ config\ it}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00117}00117\ \ \ \textcolor{keywordflow}{if}\ (stim-\/>sSlaveConfig.SlaveMode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00118}00118\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00119}00119\ \ \ \ \ \textcolor{comment}{//\ slave\ mode\ init\ \ \ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00120}00120\ \ \ \ \ \textcolor{keywordflow}{if}\ (HAL\_TIM\_SlaveConfigSynchro(\&stim-\/>htim,\ \&stim-\/>sSlaveConfig)\ !=\ HAL\_OK)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00121}00121\ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00122}00122\ \ \ \ \ \ \ \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{MyLibs\_Error\_Handler}}();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00123}00123\ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00124}00124\ \ \ \ \ \}\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00125}00125\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00126}00126\ \ \ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/MASTER\ INIT-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ \ \ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00127}00127\ \ \ \textcolor{comment}{//\ master\ mode\ init\ \ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00128}00128\ \ \ \textcolor{keywordflow}{if}\ (HAL\_TIMEx\_MasterConfigSynchronization(\&stim-\/>htim,\ \&stim-\/>sMasterConfig)\ !=\ HAL\_OK)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00129}00129\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00130}00130\ \ \ \ \ \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{MyLibs\_Error\_Handler}}();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00131}00131\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00132}00132\ \ \ \}\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00133}00133\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00134}00134\ \ \ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/BDTR\ INIT-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ \ \ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00135}00135\ \ \ \textcolor{keywordflow}{if}\ (HAL\_TIMEx\_ConfigBreakDeadTime(\&stim-\/>htim,\ \&stim-\/>sBreakDeadTimeConfig)\ !=\ HAL\_OK)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00136}00136\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00137}00137\ \ \ \ \ \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{MyLibs\_Error\_Handler}}();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00138}00138\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00139}00139\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00140}00140\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00141}00141\ \ \ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/IT\ CLEAR-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00142}00142\ \ \ \_\_HAL\_TIM\_CLEAR\_IT(\&stim-\/>htim,\ TIM\_IT\_UPDATE);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00143}00143\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00144}00144\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00145}00145\ \ \ \textcolor{comment}{//\ обновляем\ TickBase}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00146}00146\ \textcolor{preprocessor}{\ \ \#ifdef\ UPDATE\_TIM\_PARAMS\_AFTER\_INITIALIZATION}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00147}00147\ \ \ stim-\/>sTickBaseUS\ =\ (stim-\/>htim.Instance-\/>PSC+1)*stim-\/>sTickBasePrescaler/(stim-\/>sTimAHBFreqMHz);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00148}00148\ \ \ \textcolor{keywordflow}{if}(stim-\/>sTickBaseUS\ ==\ 0)\ \ \textcolor{comment}{//\ if\ prescaler\ is\ too\ high}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00149}00149\ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ recalc\ what\ is\ prescaler\ irl}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00150}00150\ \ \ \ \ stim-\/>sTickBaseUS\ =\ 1;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00151}00151\ \ \ \ \ stim-\/>sTickBasePrescaler\ =\ stim-\/>sTimAHBFreqMHz/(stim-\/>htim.Instance-\/>PSC+1);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00152}00152\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00153}00153\ \textcolor{preprocessor}{\ \ \#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00154}00154\ \ \ stim-\/>htim.Instance-\/>CNT\ =\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00155}00155\ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00156}00156\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00157}00157\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00158}00158\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00159}00159\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00160}00160\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00161}00161\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ TIM\ Encoder\ functional.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00162}00162\ \textcolor{comment}{\ \ *\ @param\ \ htim\ \ \ \ \ \ \ \ -\/\ указатель\ на\ хендл\ таймера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00163}00163\ \textcolor{comment}{\ \ *\ @param\ \ sConfigOC\ \ \ -\/\ указатель\ на\ настрйоки\ канала\ таймера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00164}00164\ \textcolor{comment}{\ \ *\ @param\ \ GPIOx\ \ \ \ \ \ \ -\/\ порт\ для\ приема\ енкодера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00165}00165\ \textcolor{comment}{\ \ *\ @param\ \ GPIO\_PIN1\ \ \ -\/\ первый\ пин\ для\ енкодера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00166}00166\ \textcolor{comment}{\ \ *\ @param\ \ GPIO\_PIN2\ \ \ -\/\ второй\ пин\ для\ енкодера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00167}00167\ \textcolor{comment}{\ \ *\ @param\ \ GPIO\_PIN\_SW\ -\/\ пин\ для\ кнопки\ енкодера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00168}00168\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00169}00169\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00170}00170\ HAL\_StatusTypeDef\ TIM\_Encoder\_Init(\mbox{\hyperlink{struct_t_i_m___encoder_type_def}{TIM\_EncoderTypeDef}}\ *henc,\ TIM\_HandleTypeDef\ *htim)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00171}00171\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00172}00172\ \ \ GPIO\_InitTypeDef\ GPIO\_InitStruct\ =\ \{0\};}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00173}00173\ \ \ HAL\_StatusTypeDef\ RES\ =\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00174}00174\ \ \ henc-\/>htim\ =\ htim;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00175}00175\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00176}00176\ \ \ \textcolor{comment}{//\ setup\ channel\ for\ pwm}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00177}00177\ \ \ RES\ =\ HAL\_TIM\_Encoder\_Init(henc-\/>htim,\ \&henc-\/>sConfig);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00178}00178\ \ \ \textcolor{keywordflow}{if}\ (RES\ !=\ HAL\_OK)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00179}00179\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00180}00180\ \ \ \ \ \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{MyLibs\_Error\_Handler}}();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00181}00181\ \ \ \ \ \textcolor{keywordflow}{return}\ RES;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00182}00182\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00183}00183\ \ \ \textcolor{comment}{//\ choose\ port\ for\ enable\ clock}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00184}00184\ \ \ RES\ =\ \mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}{GPIO\_Clock\_Enable}}(henc-\/>GPIOx);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00185}00185\ \ \ \textcolor{keywordflow}{if}(RES\ !=\ HAL\_OK)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00186}00186\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00187}00187\ \ \ \ \ \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{MyLibs\_Error\_Handler}}();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00188}00188\ \ \ \ \ \textcolor{keywordflow}{return}\ RES;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00189}00189\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00190}00190\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00191}00191\ \ \ GPIO\_InitStruct.Pin\ =\ henc-\/>GPIO\_PIN\_TI1|henc-\/>GPIO\_PIN\_TI2;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00192}00192\ \ \ GPIO\_InitStruct.Mode\ =\ GPIO\_MODE\_AF\_PP;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00193}00193\ \ \ GPIO\_InitStruct.Pull\ =\ GPIO\_PULLUP;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00194}00194\ \ \ GPIO\_InitStruct.Speed\ =\ GPIO\_SPEED\_FREQ\_LOW;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00195}00195\ \ \ GPIO\_InitStruct.Alternate\ =\ \mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga34242874b455a72aa6e25841678ed105}{TIM\_Alternate\_Mapping}}(henc-\/>htim-\/>Instance);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00196}00196\ \ \ \textcolor{keywordflow}{if}(GPIO\_InitStruct.Alternate)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00197}00197\ \ \ \ \ HAL\_GPIO\_Init(henc-\/>GPIOx,\ \&GPIO\_InitStruct);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00198}00198\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00199}00199\ \ \ \textcolor{keywordflow}{if}(henc-\/>GPIO\_PIN\_SW)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00200}00200\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00201}00201\ \ \ \ \ \textcolor{comment}{/*Configure\ switch\ pin\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00202}00202\ \ \ \ \ GPIO\_InitStruct.Pin\ =\ henc-\/>GPIO\_PIN\_SW;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00203}00203\ \ \ \ \ GPIO\_InitStruct.Mode\ =\ GPIO\_MODE\_INPUT;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00204}00204\ \ \ \ \ GPIO\_InitStruct.Pull\ =\ GPIO\_PULLUP;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00205}00205\ \ \ \ \ HAL\_GPIO\_Init(GPIOA,\ \&GPIO\_InitStruct);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00206}00206\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00207}00207\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00208}00208\ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00209}00209\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00210}00210\ \ \ \ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00211}00211\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00212}00212\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ PWM\ Channel\ and\ GPIO\ for\ output.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00213}00213\ \textcolor{comment}{\ \ *\ @param\ \ htim\ \ \ \ \ \ \ \ -\/\ указатель\ на\ хендл\ таймера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00214}00214\ \textcolor{comment}{\ \ *\ @param\ \ sConfigOC\ \ \ -\/\ указатель\ на\ настрйоки\ канала\ таймера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00215}00215\ \textcolor{comment}{\ \ *\ @param\ \ TIM\_CHANNEL\ -\/\ канал\ таймера\ для\ настройки.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00216}00216\ \textcolor{comment}{\ \ *\ @param\ \ GPIOx\ \ \ \ \ \ \ -\/\ порт\ для\ вывода\ ШИМ.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00217}00217\ \textcolor{comment}{\ \ *\ @param\ \ GPIO\_PIN\ \ \ \ -\/\ пин\ для\ вывода\ ШИМ.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00218}00218\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00219}00219\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00220}00220\ HAL\_StatusTypeDef\ TIM\_Output\_PWM\_Init(TIM\_HandleTypeDef\ *htim,\ TIM\_OC\_InitTypeDef\ *sConfigOC,\ uint32\_t\ TIM\_CHANNEL,\ GPIO\_TypeDef\ *GPIOx,\ uint32\_t\ GPIO\_PIN)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00221}00221\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00222}00222\ \ \ GPIO\_InitTypeDef\ GPIO\_InitStruct\ =\ \{0\};}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00223}00223\ \ \ HAL\_StatusTypeDef\ RES\ =\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00224}00224\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00225}00225\ \ \ \textcolor{comment}{//\ setup\ channel\ for\ pwm}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00226}00226\ \ \ RES\ =\ HAL\_TIM\_PWM\_ConfigChannel(htim,\ sConfigOC,\ TIM\_CHANNEL);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00227}00227\ \ \ \textcolor{keywordflow}{if}\ (RES\ !=\ HAL\_OK)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00228}00228\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00229}00229\ \ \ \ \ \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{MyLibs\_Error\_Handler}}();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00230}00230\ \ \ \ \ \textcolor{keywordflow}{return}\ RES;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00231}00231\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00232}00232\ \ \ \textcolor{comment}{//\ choose\ port\ for\ enable\ clock}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00233}00233\ \ \ RES\ =\ \mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}{GPIO\_Clock\_Enable}}(GPIOx);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00234}00234\ \ \ \textcolor{keywordflow}{if}(RES\ !=\ HAL\_OK)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00235}00235\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00236}00236\ \ \ \ \ \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{MyLibs\_Error\_Handler}}();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00237}00237\ \ \ \ \ \textcolor{keywordflow}{return}\ RES;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00238}00238\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00239}00239\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00240}00240\ \ \ GPIO\_InitStruct.Pin\ =\ GPIO\_PIN;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00241}00241\ \ \ GPIO\_InitStruct.Mode\ =\ GPIO\_MODE\_AF\_PP;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00242}00242\ \ \ \textcolor{keywordflow}{if}(sConfigOC-\/>OCPolarity\ ==\ TIM\_OCNPOLARITY\_HIGH)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00243}00243\ \ \ \ \ GPIO\_InitStruct.Pull\ =\ GPIO\_PULLDOWN;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00244}00244\ \ \ \textcolor{keywordflow}{else}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00245}00245\ \ \ \ \ GPIO\_InitStruct.Pull\ =\ GPIO\_PULLUP;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00246}00246\ \ \ GPIO\_InitStruct.Speed\ =\ GPIO\_SPEED\_FREQ\_LOW;\ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00247}00247\ \ \ GPIO\_InitStruct.Alternate\ =\ \mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga34242874b455a72aa6e25841678ed105}{TIM\_Alternate\_Mapping}}(htim-\/>Instance);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00248}00248\ \ \ \textcolor{keywordflow}{if}(GPIO\_InitStruct.Alternate)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00249}00249\ \ \ \ \ HAL\_GPIO\_Init(GPIOx,\ \&GPIO\_InitStruct);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00250}00250\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00251}00251\ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00252}00252\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00253}00253\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00254}00254\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00255}00255\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ OC\ Comparator.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00256}00256\ \textcolor{comment}{\ \ *\ @param\ \ htim\ \ \ \ \ \ \ \ -\/\ указатель\ на\ хендл\ таймера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00257}00257\ \textcolor{comment}{\ \ *\ @param\ \ TIM\_CHANNEL\ -\/\ канал\ таймера\ для\ настройки.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00258}00258\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00259}00259\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00260}00260\ HAL\_StatusTypeDef\ TIM\_OC\_Comparator\_Init(TIM\_HandleTypeDef\ *htim,\ uint32\_t\ TIM\_CHANNEL)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00261}00261\ \{\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00262}00262\ \ \ TIM\_OC\_InitTypeDef\ \ \ \ \ \ sConfigOC\ =\ \{0\};}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00263}00263\ \ \ HAL\_StatusTypeDef\ RES\ =\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00264}00264\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00265}00265\ \ \ sConfigOC.OCMode\ =\ TIM\_OCMODE\_ACTIVE;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00266}00266\ \ \ sConfigOC.Pulse\ =\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00267}00267\ \ \ sConfigOC.OCPolarity\ =\ TIM\_OCPOLARITY\_HIGH;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00268}00268\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00269}00269\ \ \ RES\ =\ HAL\_TIM\_OC\_ConfigChannel(htim,\ \&sConfigOC,\ TIM\_CHANNEL);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00270}00270\ \ \ \textcolor{keywordflow}{if}\ (RES\ !=\ HAL\_OK)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00271}00271\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00272}00272\ \ \ \ \ \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{MyLibs\_Error\_Handler}}();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00273}00273\ \ \ \ \ \textcolor{keywordflow}{return}\ RES;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00274}00274\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00275}00275\ \ \ \textcolor{keywordflow}{return}\ RES;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00276}00276\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00277}00277\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00278}00278\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00279}00279\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00280}00280\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00281}00281\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/TIM\ USER\ FUNCTIONS-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ }\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00282}00282\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00283}00283\ \textcolor{comment}{\ \ *\ @brief\ \ Delay\ via\ TIM.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00284}00284\ \textcolor{comment}{\ \ *\ @param\ \ htim\ \ \ \ -\/\ указатель\ на\ хендл\ таймера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00285}00285\ \textcolor{comment}{\ \ *\ @param\ \ delay\ \ \ -\/\ задержка\ в\ тиках\ таймера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00286}00286\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00287}00287\ \textcolor{comment}{\ \ *\ @note\ \ \ Таймер\ должен\ быть\ уже\ запущен.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00288}00288\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00289}00289\ HAL\_StatusTypeDef\ TIM\_Delay(TIM\_HandleTypeDef\ *htim,\ uint16\_t\ delay)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00290}00290\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00291}00291\ \ \ \textcolor{keywordflow}{if}(delay\ >=\ htim-\/>Instance-\/>ARR)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00292}00292\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00293}00293\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00294}00294\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00295}00295\ \ \ htim-\/>Instance-\/>CNT\ =\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00296}00296\ \ \ \textcolor{keywordflow}{while}(1)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00297}00297\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00298}00298\ \ \ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance-\/>CNT\ >\ delay)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00299}00299\ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00300}00300\ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00301}00301\ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00302}00302\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00303}00303\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00304}00304\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00305}00305\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00306}00306\ \textcolor{comment}{\ \ *\ @brief\ \ Start\ delay\ via\ TIM.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00307}00307\ \textcolor{comment}{\ \ *\ @param\ \ htim\ \ \ \ -\/\ указатель\ на\ хендл\ таймера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00308}00308\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00309}00309\ \textcolor{comment}{\ \ *\ @note\ \ \ Таймер\ должен\ быть\ уже\ запущен.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00310}00310\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00311}00311\ HAL\_StatusTypeDef\ TIM\_Delay\_Start(TIM\_HandleTypeDef\ *htim)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00312}00312\ \{\ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00313}00313\ \ \ htim-\/>Instance-\/>CNT\ =\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00314}00314\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00315}00315\ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00316}00316\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00317}00317\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00318}00318\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00319}00319\ \textcolor{comment}{\ \ *\ @brief\ \ Wait\ Delay\ via\ TIM\ without\ blocking\ app.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00320}00320\ \textcolor{comment}{\ \ *\ @param\ \ htim\ \ \ \ -\/\ указатель\ на\ хендл\ таймера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00321}00321\ \textcolor{comment}{\ \ *\ @param\ \ delay\ \ \ -\/\ задержка\ в\ тиках\ таймера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00322}00322\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00323}00323\ \textcolor{comment}{\ \ *\ @note\ \ \ Перед\ ожиданием\ задержки\ надо\ запутстить\ таймер\ её\ @ref\ TIM\_Delay\_Start}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00324}00324\ \textcolor{comment}{\ \ *\ @note\ \ \ Таймер\ не\ должен\ использоваться\ на\ время\ этой\ задержки}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00325}00325\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00326}00326\ HAL\_StatusTypeDef\ TIM\_Delay\_NonBlocking(TIM\_HandleTypeDef\ *htim,\ uint16\_t\ delay)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00327}00327\ \{\ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00328}00328\ \ \ \textcolor{keywordflow}{if}(delay\ >=\ htim-\/>Instance-\/>ARR)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00329}00329\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00330}00330\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00331}00331\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00332}00332\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00333}00333\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance-\/>CNT\ <=\ delay)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00334}00334\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00335}00335\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_BUSY;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00336}00336\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00337}00337\ \ \ \textcolor{keywordflow}{else}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00338}00338\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00339}00339\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00340}00340\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00341}00341\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00342}00342\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00343}00343\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00344}00344\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ TIMs\ clock\ and\ interrupt.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00345}00345\ \textcolor{comment}{\ \ *\ @param\ \ htim\ -\/\ указатель\ на\ хендл\ таймера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00346}00346\ \textcolor{comment}{\ \ *\ @note\ \ \ Чтобы\ не\ генерировать\ функцию\ с\ иницилизацией\ неиспользуемых\ таймеров,}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00347}00347\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ дефайнами\ в\ general\_tim.h\ определяются\ используемые\ таймеры.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00348}00348\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00349}00349\ \textcolor{keywordtype}{void}\ TIM\_Base\_MspInit(TIM\_HandleTypeDef*\ htim,\ TIM\_ITModeTypeDef\ it\_mode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00350}00350\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00351}00351\ \ \ it\_mode\ =\ it\_mode\&TIM\_IT\_CONF;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00352}00352\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00353}00353\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM1)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00354}00354\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00355}00355\ \ \ \ \ \textcolor{comment}{/*\ TIM2\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00356}00356\ \ \ \ \ \_\_HAL\_RCC\_TIM1\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00357}00357\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00358}00358\ \ \ \ \ \textcolor{comment}{/*\ TIM2\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00359}00359\ \ \ \textcolor{keywordflow}{if}(it\_mode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00360}00360\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00361}00361\ \ \ \ \ HAL\_NVIC\_SetPriority(TIM1\_UP\_TIM10\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00362}00362\ \ \ \ \ HAL\_NVIC\_EnableIRQ(TIM1\_UP\_TIM10\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00363}00363\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00364}00364\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00365}00365\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00366}00366\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM2}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00367}00367\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM2)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00368}00368\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00369}00369\ \ \ \ \ \textcolor{comment}{/*\ TIM2\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00370}00370\ \ \ \ \ \_\_HAL\_RCC\_TIM2\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00371}00371\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00372}00372\ \ \ \ \ \textcolor{comment}{/*\ TIM2\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00373}00373\ \ \ \textcolor{keywordflow}{if}(it\_mode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00374}00374\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00375}00375\ \ \ \ \ HAL\_NVIC\_SetPriority(TIM2\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00376}00376\ \ \ \ \ HAL\_NVIC\_EnableIRQ(TIM2\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00377}00377\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00378}00378\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00379}00379\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00380}00380\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM3}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00381}00381\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM3)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00382}00382\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00383}00383\ \ \ \ \ \textcolor{comment}{/*\ TIM3\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00384}00384\ \ \ \ \ \_\_HAL\_RCC\_TIM3\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00385}00385\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00386}00386\ \ \ \ \ \textcolor{comment}{/*\ TIM3\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00387}00387\ \ \ \textcolor{keywordflow}{if}(it\_mode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00388}00388\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00389}00389\ \ \ \ \ HAL\_NVIC\_SetPriority(TIM3\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00390}00390\ \ \ \ \ HAL\_NVIC\_EnableIRQ(TIM3\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00391}00391\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00392}00392\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00393}00393\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00394}00394\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM4}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00395}00395\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM4)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00396}00396\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00397}00397\ \ \ \ \ \textcolor{comment}{/*\ TIM4\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00398}00398\ \ \ \ \ \_\_HAL\_RCC\_TIM4\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00399}00399\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00400}00400\ \ \ \ \ \textcolor{comment}{/*\ TIM4\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00401}00401\ \ \ \textcolor{keywordflow}{if}(it\_mode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00402}00402\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00403}00403\ \ \ \ \ HAL\_NVIC\_SetPriority(TIM4\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00404}00404\ \ \ \ \ HAL\_NVIC\_EnableIRQ(TIM4\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00405}00405\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00406}00406\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00407}00407\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00408}00408\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM5}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00409}00409\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM5)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00410}00410\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00411}00411\ \ \ \ \ \textcolor{comment}{/*\ TIM5\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00412}00412\ \ \ \ \ \_\_HAL\_RCC\_TIM5\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00413}00413\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00414}00414\ \ \ \ \ \textcolor{comment}{/*\ TIM5\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00415}00415\ \ \ \textcolor{keywordflow}{if}(it\_mode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00416}00416\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00417}00417\ \ \ \ \ HAL\_NVIC\_SetPriority(TIM5\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00418}00418\ \ \ \ \ HAL\_NVIC\_EnableIRQ(TIM5\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00419}00419\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00420}00420\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00421}00421\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00422}00422\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM6}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00423}00423\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM6)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00424}00424\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00425}00425\ \ \ \ \ \textcolor{comment}{/*\ TIM6\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00426}00426\ \ \ \ \ \_\_HAL\_RCC\_TIM6\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00427}00427\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00428}00428\ \ \ \ \ \textcolor{comment}{/*\ TIM6\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00429}00429\ \ \ \textcolor{keywordflow}{if}(it\_mode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00430}00430\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00431}00431\ \ \ \ \ HAL\_NVIC\_SetPriority(TIM6\_DAC\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00432}00432\ \ \ \ \ HAL\_NVIC\_EnableIRQ(TIM6\_DAC\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00433}00433\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00434}00434\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00435}00435\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00436}00436\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM7}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00437}00437\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM7)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00438}00438\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00439}00439\ \ \ \ \ \textcolor{comment}{/*\ TIM7\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00440}00440\ \ \ \ \ \_\_HAL\_RCC\_TIM7\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00441}00441\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00442}00442\ \ \ \ \ \textcolor{comment}{/*\ TIM7\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00443}00443\ \ \ \textcolor{keywordflow}{if}(it\_mode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00444}00444\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00445}00445\ \ \ \ \ HAL\_NVIC\_SetPriority(TIM7\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00446}00446\ \ \ \ \ HAL\_NVIC\_EnableIRQ(TIM7\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00447}00447\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00448}00448\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00449}00449\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00450}00450\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM8}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00451}00451\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM8)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00452}00452\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00453}00453\ \ \ \ \ \textcolor{comment}{/*\ TIM8\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00454}00454\ \ \ \ \ \_\_HAL\_RCC\_TIM8\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00455}00455\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00456}00456\ \ \ \ \ \textcolor{comment}{/*\ TIM8\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00457}00457\ \ \ \textcolor{keywordflow}{if}(it\_mode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00458}00458\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00459}00459\ \ \ \ \ HAL\_NVIC\_SetPriority(TIM8\_UP\_TIM13\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00460}00460\ \ \ \ \ HAL\_NVIC\_EnableIRQ(TIM8\_UP\_TIM13\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00461}00461\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00462}00462\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00463}00463\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00464}00464\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM9}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00465}00465\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM9)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00466}00466\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00467}00467\ \ \ \ \ \textcolor{comment}{/*\ TIM9\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00468}00468\ \ \ \ \ \_\_HAL\_RCC\_TIM9\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00469}00469\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00470}00470\ \ \ \ \ \textcolor{comment}{/*\ TIM9\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00471}00471\ \ \ \textcolor{keywordflow}{if}(it\_mode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00472}00472\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00473}00473\ \ \ \ \ HAL\_NVIC\_SetPriority(TIM1\_BRK\_TIM9\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00474}00474\ \ \ \ \ HAL\_NVIC\_EnableIRQ(TIM1\_BRK\_TIM9\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00475}00475\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00476}00476\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00477}00477\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00478}00478\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM10}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00479}00479\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM10)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00480}00480\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00481}00481\ \ \ \ \ \textcolor{comment}{/*\ TIM10\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00482}00482\ \ \ \ \ \_\_HAL\_RCC\_TIM10\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00483}00483\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00484}00484\ \ \ \ \ \textcolor{comment}{/*\ TIM10\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00485}00485\ \ \ \textcolor{keywordflow}{if}(it\_mode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00486}00486\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00487}00487\ \ \ \ \ HAL\_NVIC\_SetPriority(TIM1\_UP\_TIM10\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00488}00488\ \ \ \ \ HAL\_NVIC\_EnableIRQ(TIM1\_UP\_TIM10\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00489}00489\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00490}00490\ \ \ \}\ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00491}00491\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00492}00492\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM11}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00493}00493\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM11)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00494}00494\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00495}00495\ \ \ \ \ \textcolor{comment}{/*\ TIM11\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00496}00496\ \ \ \ \ \_\_HAL\_RCC\_TIM11\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00497}00497\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00498}00498\ \ \ \ \ \textcolor{comment}{/*\ TIM11\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00499}00499\ \ \ \textcolor{keywordflow}{if}(it\_mode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00500}00500\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00501}00501\ \ \ \ \ HAL\_NVIC\_SetPriority(TIM1\_TRG\_COM\_TIM11\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00502}00502\ \ \ \ \ HAL\_NVIC\_EnableIRQ(TIM1\_TRG\_COM\_TIM11\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00503}00503\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00504}00504\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00505}00505\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00506}00506\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM12}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00507}00507\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM12)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00508}00508\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00509}00509\ \ \ \ \ \textcolor{comment}{/*\ TIM12\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00510}00510\ \ \ \ \ \_\_HAL\_RCC\_TIM12\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00511}00511\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00512}00512\ \ \ \ \ \textcolor{comment}{/*\ TIM12\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00513}00513\ \ \ \textcolor{keywordflow}{if}(it\_mode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00514}00514\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00515}00515\ \ \ \ \ HAL\_NVIC\_SetPriority(TIM8\_BRK\_TIM12\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00516}00516\ \ \ \ \ HAL\_NVIC\_EnableIRQ(TIM8\_BRK\_TIM12\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00517}00517\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00518}00518\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00519}00519\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00520}00520\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM13}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00521}00521\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM13)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00522}00522\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00523}00523\ \ \ \ \ \textcolor{comment}{/*\ TIM13\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00524}00524\ \ \ \ \ \_\_HAL\_RCC\_TIM13\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00525}00525\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00526}00526\ \ \ \ \ \textcolor{comment}{/*\ TIM13\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00527}00527\ \ \ \textcolor{keywordflow}{if}(it\_mode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00528}00528\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00529}00529\ \ \ \ \ HAL\_NVIC\_SetPriority(TIM8\_UP\_TIM13\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00530}00530\ \ \ \ \ HAL\_NVIC\_EnableIRQ(TIM8\_UP\_TIM13\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00531}00531\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00532}00532\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00533}00533\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00534}00534\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM14}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00535}00535\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM14)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00536}00536\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00537}00537\ \ \ \ \ \textcolor{comment}{/*\ TIM14\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00538}00538\ \ \ \ \ \_\_HAL\_RCC\_TIM14\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00539}00539\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00540}00540\ \ \ \ \ \textcolor{comment}{/*\ TIM14\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00541}00541\ \ \ \textcolor{keywordflow}{if}(it\_mode)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00542}00542\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00543}00543\ \ \ \ \ HAL\_NVIC\_SetPriority(TIM8\_TRG\_COM\_TIM14\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00544}00544\ \ \ \ \ HAL\_NVIC\_EnableIRQ(TIM8\_TRG\_COM\_TIM14\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00545}00545\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00546}00546\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00547}00547\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00548}00548\ \}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00549}00549\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00550}00550\ \textcolor{comment}{\ \ *\ @brief\ \ DeInitialize\ TIMs\ clock\ and\ interrupt.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00551}00551\ \textcolor{comment}{\ \ *\ @param\ \ htim\ -\/\ указатель\ на\ хендл\ таймера.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00552}00552\ \textcolor{comment}{\ \ *\ @note\ \ \ Чтобы\ не\ генерировать\ функцию\ с\ деиницилизацией\ неиспользуемых\ таймеров,}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00553}00553\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ дефайнами\ в\ general\_tim.h\ определяются\ используемые\ таймеры.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00554}00554\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00555}00555\ \textcolor{keywordtype}{void}\ TIM\_Base\_MspDeInit(TIM\_HandleTypeDef*\ htim)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00556}00556\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00557}00557\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00558}00558\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM1)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00559}00559\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00560}00560\ \ \ \ \ \_\_HAL\_RCC\_TIM1\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00561}00561\ \ \ \ \ \_\_HAL\_RCC\_TIM1\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00562}00562\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00563}00563\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00564}00564\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM2}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00565}00565\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM2)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00566}00566\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00567}00567\ \ \ \ \ \_\_HAL\_RCC\_TIM2\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00568}00568\ \ \ \ \ \_\_HAL\_RCC\_TIM2\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00569}00569\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00570}00570\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00571}00571\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM3}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00572}00572\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM3)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00573}00573\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00574}00574\ \ \ \ \ \_\_HAL\_RCC\_TIM3\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00575}00575\ \ \ \ \ \_\_HAL\_RCC\_TIM3\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00576}00576\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00577}00577\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00578}00578\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM4}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00579}00579\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM4)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00580}00580\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00581}00581\ \ \ \ \ \_\_HAL\_RCC\_TIM4\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00582}00582\ \ \ \ \ \_\_HAL\_RCC\_TIM4\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00583}00583\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00584}00584\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00585}00585\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM5}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00586}00586\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM5)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00587}00587\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00588}00588\ \ \ \ \ \_\_HAL\_RCC\_TIM5\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00589}00589\ \ \ \ \ \_\_HAL\_RCC\_TIM5\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00590}00590\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00591}00591\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00592}00592\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM6}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00593}00593\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM6)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00594}00594\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00595}00595\ \ \ \ \ \_\_HAL\_RCC\_TIM6\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00596}00596\ \ \ \ \ \_\_HAL\_RCC\_TIM6\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00597}00597\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00598}00598\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00599}00599\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM7}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00600}00600\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM7)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00601}00601\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00602}00602\ \ \ \ \ \_\_HAL\_RCC\_TIM7\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00603}00603\ \ \ \ \ \_\_HAL\_RCC\_TIM7\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00604}00604\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00605}00605\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00606}00606\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM8}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00607}00607\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM8)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00608}00608\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00609}00609\ \ \ \ \ \_\_HAL\_RCC\_TIM8\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00610}00610\ \ \ \ \ \_\_HAL\_RCC\_TIM8\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00611}00611\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00612}00612\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00613}00613\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM9}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00614}00614\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM9)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00615}00615\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00616}00616\ \ \ \ \ \_\_HAL\_RCC\_TIM9\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00617}00617\ \ \ \ \ \_\_HAL\_RCC\_TIM9\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00618}00618\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00619}00619\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00620}00620\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM10}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00621}00621\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM10)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00622}00622\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00623}00623\ \ \ \ \ \_\_HAL\_RCC\_TIM10\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00624}00624\ \ \ \ \ \_\_HAL\_RCC\_TIM10\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00625}00625\ \ \ \}\ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00626}00626\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00627}00627\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM11}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00628}00628\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM11)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00629}00629\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00630}00630\ \ \ \ \ \_\_HAL\_RCC\_TIM11\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00631}00631\ \ \ \ \ \_\_HAL\_RCC\_TIM11\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00632}00632\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00633}00633\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00634}00634\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM12}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00635}00635\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM12)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00636}00636\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00637}00637\ \ \ \ \ \_\_HAL\_RCC\_TIM12\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00638}00638\ \ \ \ \ \_\_HAL\_RCC\_TIM12\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00639}00639\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00640}00640\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00641}00641\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM13}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00642}00642\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM13)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00643}00643\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00644}00644\ \ \ \ \ \_\_HAL\_RCC\_TIM13\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00645}00645\ \ \ \ \ \_\_HAL\_RCC\_TIM13\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00646}00646\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00647}00647\ \textcolor{preprocessor}{\#endif\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00648}00648\ \textcolor{preprocessor}{\#ifdef\ USE\_TIM14}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00649}00649\ \ \ \textcolor{keywordflow}{if}(htim-\/>Instance==TIM14)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00650}00650\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00651}00651\ \ \ \ \ \_\_HAL\_RCC\_TIM14\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00652}00652\ \ \ \ \ \_\_HAL\_RCC\_TIM14\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00653}00653\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00654}00654\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00655}00655\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00656}00656\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/TIM\ INIT\ FUNCTIONS-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8c_source_l00657}00657\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
|
||||
\end{DoxyCode}
|
||||
136
Doc/latex/____general__tim_8h_source.tex
Normal file
136
Doc/latex/____general__tim_8h_source.tex
Normal file
@@ -0,0 +1,136 @@
|
||||
\doxysection{\+\_\+\+\_\+general\+\_\+tim.\+h}
|
||||
\hypertarget{____general__tim_8h_source}{}\label{____general__tim_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_tim.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_tim.h}}
|
||||
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00001}00001\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00002}00002\ \textcolor{comment}{\ \ **************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00003}00003\ \textcolor{comment}{\ \ *\ @file\ general\_tim.h}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00004}00004\ \textcolor{comment}{\ \ *\ @brief\ Заголовочный\ файл\ для\ базовой\ работы\ с\ таймерами.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00005}00005\ \textcolor{comment}{\ \ *************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00006}00006\ \textcolor{preprocessor}{\#ifndef\ \_\_TIM\_GENERAL\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00007}00007\ \textcolor{preprocessor}{\#define\ \_\_TIM\_GENERAL\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00008}00008\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00009}00009\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00010}00010\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00011}00011\ \textcolor{preprocessor}{\#define\ HAL\_TIM\_MODULE\_ENABLED\ }\textcolor{comment}{//\ need\ to\ uncomment\ this\ define\ in\ stm32f4xx\_hal\_conf.h}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00012}00012\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00013}00013\ \textcolor{preprocessor}{\#define\ USE\_TIM1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00014}00014\ \textcolor{preprocessor}{\#define\ USE\_TIM2}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00015}00015\ \textcolor{preprocessor}{\#define\ USE\_TIM3}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00016}00016\ \textcolor{preprocessor}{\#define\ USE\_TIM4}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00017}00017\ \textcolor{preprocessor}{\#define\ USE\_TIM5}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00018}00018\ \textcolor{preprocessor}{\#define\ USE\_TIM6}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00019}00019\ \textcolor{preprocessor}{\#define\ USE\_TIM7}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00020}00020\ \textcolor{preprocessor}{\#define\ USE\_TIM8}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00021}00021\ \textcolor{preprocessor}{\#define\ USE\_TIM9}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00022}00022\ \textcolor{preprocessor}{\#define\ USE\_TIM10}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00023}00023\ \textcolor{preprocessor}{\#define\ USE\_TIM11}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00024}00024\ \textcolor{preprocessor}{\#define\ USE\_TIM12}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00025}00025\ \textcolor{preprocessor}{\#define\ USE\_TIM13}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00026}00026\ \textcolor{preprocessor}{\#define\ USE\_TIM14}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00027}00027\ \textcolor{comment}{/*\ note:\ used\ uart\ defines\ in\ modbus.h\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00028}00028\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00029}00029\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00030}00030\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00031}00031\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00032}00032\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00033}00033\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00034}00034\ \textcolor{preprocessor}{\#define\ TIM\_IT\_CONF\_Pos\ \ \ \ \ \ \ \ \ \ \ 0}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00035}00035\ \textcolor{comment}{//\#define\ TIM\_PWM\_CONF\_Pos\ \ \ \ \ \ \ \ \ \ 1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00036}00036\ \textcolor{comment}{//\#define\ TIM\_CLCK\_SRC\_CONF\_Pos\ \ \ \ \ 2}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00037}00037\ \textcolor{comment}{//\#define\ TIM\_SLAVE\_CONF\_Pos\ \ \ \ \ \ \ \ 3}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00038}00038\ \textcolor{comment}{//\#define\ TIM\_MASTER\_CONF\_Pos\ \ \ \ \ \ \ 4}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00039}00039\ \textcolor{comment}{//\#define\ TIM\_BDTR\_CONF\_Pos\ \ \ \ \ \ \ \ \ 5}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00040}00040\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00041}00041\ \textcolor{preprocessor}{\#define\ TIM\_IT\_CONF\ \ \ (1<<(TIM\_IT\_CONF\_Pos))}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00042}00042\ \textcolor{comment}{//\#define\ TIM\_PWM\_CONF\ \ \ \ \ \ (1<<(TIM\_PWM\_Pos))}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00043}00043\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00044}00044\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00045}00045\ \textcolor{preprocessor}{\#define\ TIM\_Alternate\_Mapping(INSTANCE)\ \ \ \ \ \ \ \ ((((INSTANCE)\ ==\ TIM1)\ ||\ ((INSTANCE)\ ==\ TIM2))?\ GPIO\_AF1\_TIM1:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00046}00046\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (((INSTANCE)\ ==\ TIM3)\ ||\ ((INSTANCE)\ ==\ TIM4)\ ||\ ((INSTANCE)\ ==\ TIM5))?\ GPIO\_AF2\_TIM3:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00047}00047\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (((INSTANCE)\ ==\ TIM8)\ ||\ ((INSTANCE)\ ==\ TIM9)\ ||\ ((INSTANCE)\ ==\ TIM10)\ ||\ ((INSTANCE)\ ==\ TIM11))?\ GPIO\_AF3\_TIM8:\ \ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00048}00048\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (((INSTANCE)\ ==\ TIM12)\ ||\ ((INSTANCE)\ ==\ TIM13)\ ||\ ((INSTANCE)\ ==\ TIM14))?\ GPIO\_AF9\_TIM12:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00049}00049\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (0))}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00050}00050\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////]}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00051}00051\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00052}00052\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00053}00053\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00054}00054\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00055}00055\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00056}00056\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{enum}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00057}00057\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00058}00058\ \ \ TIM\_DEFAULT\ =\ \ \ \ \ \ \ \ \ 0,}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00059}00059\ \ \ TIM\_IT\_MODE\ =\ \ \ \ \ \ \ \ \ TIM\_IT\_CONF,}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00060}00060\ \textcolor{comment}{//\ \ TIM\_PWM\_MODE\ =\ \ \ \ \ \ \ \ TIM\_PWM\_ENABLE,}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00061}00061\ \textcolor{comment}{//\ \ TIM\_PWM\_IT\_MODE\ =\ \ \ \ \ TIM\_PWM\_ENABLE\ |\ TIM\_IT\_CONF,}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00062}00062\ \}TIM\_ITModeTypeDef;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00063}00063\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00064}00064\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00065}00065\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{enum}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00066}00066\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00067}00067\ \ \ TIM\_Base\_Disable\ =\ \ \ \ \ \ 0,}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00068}00068\ \ \ TIM\_TickBase\_1US\ =\ \ \ \ \ \ 1,}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00069}00069\ \ \ TIM\_TickBase\_10US\ =\ \ \ \ \ 10,}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00070}00070\ \ \ TIM\_TickBase\_100US\ =\ \ \ \ 100,}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00071}00071\ \ \ TIM\_TickBase\_1MS\ =\ \ \ \ \ \ 1000,}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00072}00072\ \ \ TIM\_TickBase\_10MS\ =\ \ \ \ \ 10000,}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00073}00073\ \ \ TIM\_TickBase\_100MS\ =\ \ \ \ 100000,}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00074}00074\ \}TIM\_MHzTickBaseTypeDef;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00075}00075\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00076}\mbox{\hyperlink{struct_t_i_m___settings_type_def}{00076}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\textcolor{comment}{//\ struct\ with\ settings\ for\ custom\ function}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00077}00077\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00078}00078\ \ \ TIM\_HandleTypeDef\ \ \ \ \ \ \ htim;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00079}00079\ \ \ TIM\_ClockConfigTypeDef\ \ sClockSourceConfig;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00080}00080\ \ \ TIM\_SlaveConfigTypeDef\ \ sSlaveConfig;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00081}00081\ \ \ TIM\_MasterConfigTypeDef\ sMasterConfig;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00082}00082\ \ \ TIM\_BreakDeadTimeConfigTypeDef\ sBreakDeadTimeConfig;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00083}00083\ \ \ TIM\_ITModeTypeDef\ \ \ \ \ \ \ sTimMode;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00084}00084\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00085}00085\ \ \ TIM\_MHzTickBaseTypeDef\ \ sTickBaseUS;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00086}00086\ \ \ uint8\_t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sTickBasePrescaler;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00087}00087\ \ \ \textcolor{keywordtype}{float}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sTimAHBFreqMHz;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00088}00088\ \ \ \textcolor{keywordtype}{float}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sTimFreqHz;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00089}00089\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00090}00090\ \}\mbox{\hyperlink{struct_t_i_m___settings_type_def}{TIM\_SettingsTypeDef}};}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00091}00091\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00092}00092\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00093}\mbox{\hyperlink{struct_t_i_m___encoder_type_def}{00093}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\textcolor{comment}{//\ struct\ with\ variables\ for\ encoder}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00094}00094\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00095}00095\ \ \ int16\_t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Encoder\_Diff;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00096}00096\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00097}00097\ \ \ TIM\_HandleTypeDef\ \ \ \ \ \ \ *htim;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00098}00098\ \ \ TIM\_Encoder\_InitTypeDef\ sConfig;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00099}00099\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00100}00100\ \ \ GPIO\_TypeDef\ \ \ \ \ \ \ \ \ \ \ \ *GPIOx;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00101}00101\ \ \ uint32\_t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ GPIO\_PIN\_TI1;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00102}00102\ \ \ uint32\_t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ GPIO\_PIN\_TI2;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00103}00103\ \ \ uint32\_t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ GPIO\_PIN\_SW;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00104}00104\ \}\mbox{\hyperlink{struct_t_i_m___encoder_type_def}{TIM\_EncoderTypeDef}};\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00105}00105\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00106}00106\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00107}00107\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00108}00108\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00109}00109\ \textcolor{comment}{/*\ Initialize\ TIM\ with\ TIM\_SettingsTypeDef\ structure\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00110}00110\ HAL\_StatusTypeDef\ TIM\_Base\_Init(\mbox{\hyperlink{struct_t_i_m___settings_type_def}{TIM\_SettingsTypeDef}}*\ stim);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00111}00111\ \textcolor{comment}{/*\ Initialize\ PWM\ Channel\ and\ GPIO\ for\ output\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00112}00112\ HAL\_StatusTypeDef\ TIM\_Output\_PWM\_Init(TIM\_HandleTypeDef\ *htim,\ TIM\_OC\_InitTypeDef\ *sConfigOC,\ uint32\_t\ TIM\_CHANNEL,\ GPIO\_TypeDef\ *GPIOx,\ uint32\_t\ PWM\_PIN);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00113}00113\ \textcolor{comment}{/*\ Initialize\ TIM\ Encoder\ functional\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00114}00114\ HAL\_StatusTypeDef\ TIM\_Encoder\_Init(\mbox{\hyperlink{struct_t_i_m___encoder_type_def}{TIM\_EncoderTypeDef}}\ *henc1,\ TIM\_HandleTypeDef\ *htim);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00115}00115\ \textcolor{comment}{/*\ Initialize\ OC\ Comparator\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00116}00116\ HAL\_StatusTypeDef\ TIM\_OC\_Comparator\_Init(TIM\_HandleTypeDef\ *htim,\ uint32\_t\ TIM\_CHANNEL);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00117}00117\ \textcolor{comment}{/*\ Start\ delay\ via\ TIM\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00118}00118\ HAL\_StatusTypeDef\ TIM\_Delay\_Start(TIM\_HandleTypeDef\ *htim);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00119}00119\ \textcolor{comment}{/*\ Delay\ via\ TIM\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00120}00120\ HAL\_StatusTypeDef\ TIM\_Delay(TIM\_HandleTypeDef\ *htim,\ uint16\_t\ delay);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00121}00121\ \textcolor{comment}{/*\ Wait\ Delay\ via\ TIM\ without\ blocking\ app\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00122}00122\ HAL\_StatusTypeDef\ TIM\_Delay\_NonBlocking(TIM\_HandleTypeDef\ *htim,\ uint16\_t\ delay);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00123}00123\ \textcolor{comment}{/*\ Initialize\ TIMs\ clock\ and\ interrupt\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00124}00124\ \textcolor{keywordtype}{void}\ TIM\_Base\_MspInit(TIM\_HandleTypeDef*\ htim,\ TIM\_ITModeTypeDef\ it\_mode);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00125}00125\ \textcolor{comment}{/*\ DeInitialize\ TIMs\ clock\ and\ interrupt\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00126}00126\ \textcolor{keywordtype}{void}\ TIM\_Base\_MspDeInit(TIM\_HandleTypeDef*\ htim);\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00127}00127\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00128}00128\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00129}00129\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__tim_8h_source_l00130}00130\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_TIM\_GENERAL\_H\_}}
|
||||
|
||||
\end{DoxyCode}
|
||||
386
Doc/latex/____general__uart_8c_source.tex
Normal file
386
Doc/latex/____general__uart_8c_source.tex
Normal file
@@ -0,0 +1,386 @@
|
||||
\doxysection{\+\_\+\+\_\+general\+\_\+uart.\+c}
|
||||
\hypertarget{____general__uart_8c_source}{}\label{____general__uart_8c_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_uart.c@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_uart.c}}
|
||||
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00001}00001\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00002}00002\ \textcolor{comment}{\ \ **************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00003}00003\ \textcolor{comment}{\ \ *\ @file\ general\_uart.c}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00004}00004\ \textcolor{comment}{\ \ *\ @brief\ Модуль\ для\ инициализации\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00005}00005\ \textcolor{comment}{\ \ **************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00006}00006\ \textcolor{comment}{\ \ *\ //-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/Функции-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\///}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00007}00007\ \textcolor{comment}{\ \ *\ @verbatim}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00008}00008\ \textcolor{comment}{\ \ *\ Functions:\ users}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00009}00009\ \textcolor{comment}{\ \ *\ \ \ -\/\ UART\_Base\_Init\ \ \ \ \ \ \ \ \ \ \ \ \ \ Инициализация\ UART\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00010}00010\ \textcolor{comment}{\ \ *\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00011}00011\ \textcolor{comment}{\ \ *\ Functions:\ uart\ initialize}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00012}00012\ \textcolor{comment}{\ \ *\ \ \ -\/\ UART\_GPIO\_Init\ \ \ \ \ \ \ \ \ \ \ \ \ \ Инициализация\ GPIO\ для\ UART}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00013}00013\ \textcolor{comment}{\ \ *\ \ \ -\/\ UART\_DMA\_Init\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Инициализация\ DMA\ для\ UART}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00014}00014\ \textcolor{comment}{\ \ *\ \ \ -\/\ UART\_MspInit\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Аналог\ HAL\_MspInit\ для\ UART}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00015}00015\ \textcolor{comment}{\ \ *\ \ \ -\/\ UART\_MspDeInit\ \ \ \ \ \ \ \ \ \ \ \ \ \ Аналог\ HAL\_MspDeInit\ для\ UART}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00016}00016\ \textcolor{comment}{\ \ *\ @endverbatim}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00017}00017\ \textcolor{comment}{***************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00018}00018\ \textcolor{preprocessor}{\#include\ "{}general\_uart.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00019}00019\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{general__gpio_8h}{general\_gpio.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00020}00020\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00021}00021\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00022}00022\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/UART\ INIT\ FUNCTIONS-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00023}00023\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00024}00024\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ UART\ with\ UART\_SettingsTypeDef\ structure.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00025}00025\ \textcolor{comment}{\ \ *\ @param\ \ suart\ -\/\ указатель\ на\ структуру\ с\ настройками\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00026}00026\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00027}00027\ \textcolor{comment}{\ \ *\ @note\ \ \ Данная\ структура\ содержит\ хендл\ ЮАРТ\ и\ настройки\ перефирии\ (GPIO)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00028}00028\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00029}00029\ HAL\_StatusTypeDef\ UART\_Base\_Init(\mbox{\hyperlink{struct_u_a_r_t___settings_type_def}{UART\_SettingsTypeDef}}\ *suart)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00030}00030\ \{\ \textcolor{comment}{//\ function\ takes\ setting\ structure\ for\ init}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00031}00031\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00032}00032\ \ \ \textcolor{comment}{//\ check\ is\ settings\ are\ valid}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00033}00033\ \ \ \textcolor{keywordflow}{if}(Check\_UART\_Init\_Struct(suart)\ !=\ HAL\_OK)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00034}00034\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00035}00035\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00036}00036\ \ \ suart-\/>huart.Init.Mode\ =\ UART\_MODE\_TX\_RX;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00037}00037\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00038}00038\ \ \ UART\_MspInit(\&suart-\/>huart);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00039}00039\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00040}00040\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00041}00041\ \ \ \textcolor{keywordflow}{if}\ (HAL\_UART\_Init(\&suart-\/>huart)\ !=\ HAL\_OK)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00042}00042\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00043}00043\ \ \ \ \ \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{MyLibs\_Error\_Handler}}();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00044}00044\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00045}00045\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00046}00046\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00047}00047\ \ \ \textcolor{comment}{//\ init\ gpio\ from\ UARTSettings\ structure}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00048}00048\ \ \ UART\_GPIO\_Init(suart-\/>GPIOx,\ suart-\/>GPIO\_PIN\_RX,\ suart-\/>GPIO\_PIN\_TX);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00049}00049\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00050}00050\ \ \ \_\_HAL\_UART\_ENABLE\_IT(\&suart-\/>huart,\ UART\_IT\_IDLE);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00051}00051\ \ \ \textcolor{comment}{//\ init\ dma\ from\ UARTSettings\ structure\ if\ need}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00052}00052\ \ \ \textcolor{keywordflow}{if}\ (suart-\/>DMAChannel\ !=\ 0)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00053}00053\ \ \ \ \ UART\_DMA\_Init(\&suart-\/>huart,\ suart-\/>huart.hdmarx,\ suart-\/>DMAChannel,\ suart-\/>DMA\_CHANNEL\_X);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00054}00054\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00055}00055\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00056}00056\ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00057}00057\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00058}00058\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00059}00059\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00060}00060\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00061}00061\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ GPIO\ for\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00062}00062\ \textcolor{comment}{\ \ *\ @param\ \ GPIOx\ \ \ \ \ \ \ -\/\ порт\ для\ настройки.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00063}00063\ \textcolor{comment}{\ \ *\ @param\ \ GPIO\_PIN\_RX\ -\/\ пин\ для\ настройки\ на\ прием.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00064}00064\ \textcolor{comment}{\ \ *\ @param\ \ GPIO\_PIN\_TX\ -\/\ пин\ для\ настройки\ на\ передачу.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00065}00065\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00066}00066\ \textcolor{keywordtype}{void}\ UART\_GPIO\_Init(GPIO\_TypeDef\ *GPIOx,\ uint16\_t\ GPIO\_PIN\_RX,\ uint16\_t\ GPIO\_PIN\_TX)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00067}00067\ \{\ \textcolor{comment}{//\ function\ takes\ port\ and\ pins\ (for\ rx\ and\ tx)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00068}00068\ \ \ GPIO\_InitTypeDef\ GPIO\_InitStruct\ =\ \{0\};}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00069}00069\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00070}00070\ \ \ \textcolor{comment}{//\ choose\ port\ for\ enable\ clock}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00071}00071\ \ \ \mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}{GPIO\_Clock\_Enable}}(GPIOx);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00072}00072\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00073}00073\ \ \ \textcolor{comment}{//USART3\ GPIO\ Configuration}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00074}00074\ \ \ \textcolor{comment}{//GPIO\_PIN\_TX\ -\/-\/-\/-\/-\/-\/>\ USART\_TX}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00075}00075\ \ \ \textcolor{comment}{//GPIO\_PIN\_RX\ -\/-\/-\/-\/-\/-\/>\ USART\_RX\ \ \ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00076}00076\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00077}00077\ \textcolor{preprocessor}{\#if\ defined(STM32F407xx)\ }\textcolor{comment}{//\ gpio\ init\ for\ 407}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00078}00078\ \ \ GPIO\_InitStruct.Pin\ =\ GPIO\_PIN\_TX|GPIO\_PIN\_RX;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00079}00079\ \ \ GPIO\_InitStruct.Mode\ =\ GPIO\_MODE\_AF\_PP;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00080}00080\ \ \ GPIO\_InitStruct.Pull\ =\ GPIO\_NOPULL;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00081}00081\ \ \ GPIO\_InitStruct.Speed\ =\ GPIO\_SPEED\_FREQ\_VERY\_HIGH;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00082}00082\ \ \ GPIO\_InitStruct.Alternate\ =\ GPIO\_AF7\_USART3;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00083}00083\ \ \ HAL\_GPIO\_Init(GPIOx,\ \&GPIO\_InitStruct);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00084}00084\ \textcolor{preprocessor}{\#elif\ defined(STM32F103xG)\ \ }\textcolor{comment}{//\ gpio\ init\ for\ atm403/stm103}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00085}00085\ \ \ \textcolor{comment}{//GPIO\_PIN\_TX\ -\/-\/-\/-\/-\/-\/>\ USART\_TX}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00086}00086\ \ \ GPIO\_InitStruct.Pin\ =\ GPIO\_PIN\_TX;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00087}00087\ \ \ GPIO\_InitStruct.Mode\ =\ GPIO\_MODE\_AF\_PP;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00088}00088\ \ \ GPIO\_InitStruct.Speed\ =\ GPIO\_SPEED\_FREQ\_HIGH;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00089}00089\ \ \ HAL\_GPIO\_Init(GPIOx,\ \&GPIO\_InitStruct);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00090}00090\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00091}00091\ \textcolor{comment}{//\ \ GPIO\_PIN\_RX\ -\/-\/-\/-\/-\/-\/>\ USART\_RX\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00092}00092\ \ \ GPIO\_InitStruct.Pin\ =\ GPIO\_PIN\_RX;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00093}00093\ \ \ GPIO\_InitStruct.Mode\ =\ GPIO\_MODE\_INPUT;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00094}00094\ \ \ GPIO\_InitStruct.Pull\ =\ GPIO\_NOPULL;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00095}00095\ \ \ HAL\_GPIO\_Init(GPIOx,\ \&GPIO\_InitStruct);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00096}00096\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00097}00097\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00098}00098\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00099}00099\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00100}00100\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ DMA\ for\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00101}00101\ \textcolor{comment}{\ \ *\ @param\ \ huart\ \ \ \ \ \ \ \ \ -\/\ указатель\ на\ хендл\ UART\ для\ настройки\ DMA.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00102}00102\ \textcolor{comment}{\ \ *\ @param\ \ hdma\_rx\ \ \ \ \ \ \ -\/\ указатель\ на\ хендл\ DMA\ для\ линии\ приема\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00103}00103\ \textcolor{comment}{\ \ *\ @param\ \ DMAChannel\ \ \ \ -\/\ указатель\ на\ канал\ DMA/поток\ DMA\ в\ STM32F407.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00104}00104\ \textcolor{comment}{\ \ *\ @param\ \ DMA\_CHANNEL\_X\ -\/\ канал\ DMA.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00105}00105\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00106}00106\ \textcolor{keywordtype}{void}\ UART\_DMA\_Init(UART\_HandleTypeDef\ *huart,\ DMA\_HandleTypeDef\ *hdma\_rx,\ DMA\_Stream\_TypeDef\ *DMAChannel,\ uint32\_t\ DMA\_CHANNEL\_X)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00107}00107\ \{\ \textcolor{comment}{//\ function\ takes\ uart\ and\ dma\ handlers\ and\ dmachannel\ for\ uart}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00108}00108\ \ \ \textcolor{comment}{//\ for\ now\ only\ dma\ rx\ is\ supported,\ tx\ maybe\ later\ if\ needed}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00109}00109\ \ \ \ \ \textcolor{comment}{//\ calc\ defines\ on\ boot\_project\_setup.h}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00110}00110\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00111}00111\ \ \ \textcolor{comment}{/*\ USART3\ DMA\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00112}00112\ \ \ \textcolor{comment}{/*\ USART3\_RX\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00113}00113\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00114}00114\ \ \ hdma\_rx-\/>Instance\ =\ DMAChannel;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00115}00115\ \textcolor{preprocessor}{\#if\ defined(STM32F407xx)\ }\textcolor{comment}{//\ dma\ channel\ choose\ for\ 407}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00116}00116\ \ \ hdma\_rx-\/>Init.Channel\ =\ DMA\_CHANNEL\_X;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00117}00117\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00118}00118\ \ \ hdma\_rx-\/>Init.Direction\ =\ DMA\_PERIPH\_TO\_MEMORY;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00119}00119\ \ \ hdma\_rx-\/>Init.PeriphInc\ =\ DMA\_PINC\_DISABLE;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00120}00120\ \ \ hdma\_rx-\/>Init.MemInc\ =\ DMA\_MINC\_ENABLE;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00121}00121\ \ \ hdma\_rx-\/>Init.PeriphDataAlignment\ =\ DMA\_PDATAALIGN\_BYTE;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00122}00122\ \ \ hdma\_rx-\/>Init.MemDataAlignment\ =\ DMA\_MDATAALIGN\_BYTE;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00123}00123\ \ \ hdma\_rx-\/>Init.Mode\ =\ DMA\_CIRCULAR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00124}00124\ \ \ hdma\_rx-\/>Init.Priority\ =\ DMA\_PRIORITY\_LOW;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00125}00125\ \ \ \textcolor{keywordflow}{if}\ (HAL\_DMA\_Init(hdma\_rx)\ !=\ HAL\_OK)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00126}00126\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00127}00127\ \ \ \ \ \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{MyLibs\_Error\_Handler}}();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00128}00128\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00129}00129\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00130}00130\ \ \ \_\_USER\_LINKDMA(huart,hdmarx,hdma\_rx);\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00131}00131\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00132}00132\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00133}00133\ \ \ \textcolor{comment}{//\ \_\_USER\_LINKDMA\ is\ need\ because\ \_\_HAL\_LINKDMA\ is\ written\ for\ global\ defined\ hdma\_rx}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00134}00134\ \ \ \textcolor{comment}{//\ so\ you\ get\ error\ because\ hal\ uses\ .\ insted\ of\ -\/>}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00135}00135\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00136}00136\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00137}00137\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00138}00138\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ UART\ \&\ DMA\ clock\ and\ interrupt.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00139}00139\ \textcolor{comment}{\ \ *\ @param\ \ huart\ -\/\ указатель\ на\ хендл\ UART\ для\ инициализации.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00140}00140\ \textcolor{comment}{\ \ *\ @note\ \ \ Чтобы\ не\ генерировать\ функцию\ с\ иницилизацией\ неиспользуемых\ UART,}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00141}00141\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ дефайнами\ в\ rs\_message.h\ определяются\ используемые\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00142}00142\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00143}00143\ \textcolor{keywordtype}{void}\ UART\_MspInit(UART\_HandleTypeDef\ *huart)\ \textcolor{comment}{//\ analog\ for\ hal\ function}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00144}00144\ \{\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00145}00145\ \textcolor{comment}{//\ \ \_\_RCC\_DMA\_UART\_CLK\_ENABLE();}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00146}00146\ \textcolor{comment}{//\ \ /*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00147}00147\ \textcolor{comment}{//\ \ /*\ DMA1\_Stream1\_IRQn\ interrupt\ configuration\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00148}00148\ \textcolor{comment}{//\ \ HAL\_NVIC\_SetPriority(DMA\_UART\_IRQn,\ 0,\ 0);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00149}00149\ \textcolor{comment}{//\ \ HAL\_NVIC\_EnableIRQ(DMA\_UART\_IRQn);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00150}00150\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00151}00151\ \ \ \textcolor{comment}{//\ rcc,\ dma\ and\ interrupt\ init\ for\ USARTs}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00152}00152\ \ \ \textcolor{comment}{//\ GPIO\ init\ was\ moved\ to\ own\ functions\ UART\_GPIO\_Init\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00153}00153\ \ \ \textcolor{keywordflow}{if}(0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00154}00154\ \textcolor{preprocessor}{\#ifdef\ USE\_USART1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00155}00155\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(huart-\/>Instance==USART1)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00156}00156\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00157}00157\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00158}00158\ \ \ \textcolor{comment}{/*\ DMA2\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00159}00159\ \ \ \_\_HAL\_RCC\_DMA2\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00160}00160\ \ \ \textcolor{comment}{/*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00161}00161\ \ \ HAL\_NVIC\_SetPriority(DMA2\_Stream2\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00162}00162\ \ \ HAL\_NVIC\_EnableIRQ(DMA2\_Stream2\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00163}00163\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00164}00164\ \ \ \textcolor{comment}{/*\ USART1\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00165}00165\ \ \ \_\_HAL\_RCC\_USART1\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00166}00166\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00167}00167\ \ \ \textcolor{comment}{/*\ USART1\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00168}00168\ \ \ HAL\_NVIC\_SetPriority(USART1\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00169}00169\ \ \ HAL\_NVIC\_EnableIRQ(USART1\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00170}00170\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00171}00171\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_USART1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00172}00172\ \textcolor{preprocessor}{\#ifdef\ USE\_USART2}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00173}00173\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(huart-\/>Instance==USART2)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00174}00174\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00175}00175\ \ \ \textcolor{comment}{/*\ DMA1\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00176}00176\ \ \ \_\_HAL\_RCC\_DMA1\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00177}00177\ \ \ \textcolor{comment}{/*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00178}00178\ \ \ HAL\_NVIC\_SetPriority(DMA1\_Stream5\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00179}00179\ \ \ HAL\_NVIC\_EnableIRQ(DMA1\_Stream5\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00180}00180\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00181}00181\ \ \ \textcolor{comment}{/*\ USART2\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00182}00182\ \ \ \_\_HAL\_RCC\_USART2\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00183}00183\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00184}00184\ \ \ \textcolor{comment}{/*\ USART2\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00185}00185\ \ \ HAL\_NVIC\_SetPriority(USART2\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00186}00186\ \ \ HAL\_NVIC\_EnableIRQ(USART2\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00187}00187\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00188}00188\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_USART2}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00189}00189\ \textcolor{preprocessor}{\#ifdef\ USE\_USART3}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00190}00190\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(huart-\/>Instance==USART3)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00191}00191\ \ \ \{\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00192}00192\ \ \ \textcolor{comment}{/*\ DMA1\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00193}00193\ \ \ \_\_HAL\_RCC\_DMA1\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00194}00194\ \ \ \textcolor{comment}{/*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00195}00195\ \ \ HAL\_NVIC\_SetPriority(DMA1\_Stream1\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00196}00196\ \ \ HAL\_NVIC\_EnableIRQ(DMA1\_Stream1\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00197}00197\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00198}00198\ \ \ \textcolor{comment}{/*\ USART3\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00199}00199\ \ \ \_\_HAL\_RCC\_USART3\_CLK\_ENABLE();\ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00200}00200\ \ \ \textcolor{comment}{/*\ USART3\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00201}00201\ \ \ HAL\_NVIC\_SetPriority(USART3\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00202}00202\ \ \ HAL\_NVIC\_EnableIRQ(USART3\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00203}00203\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00204}00204\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_USART3}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00205}00205\ \textcolor{preprocessor}{\#ifdef\ USE\_UART4}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00206}00206\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(huart-\/>Instance==UART4)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00207}00207\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00208}00208\ \ \ \textcolor{comment}{/*\ DMA1\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00209}00209\ \ \ \_\_HAL\_RCC\_DMA1\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00210}00210\ \ \ \textcolor{comment}{/*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00211}00211\ \ \ HAL\_NVIC\_SetPriority(DMA1\_Stream2\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00212}00212\ \ \ HAL\_NVIC\_EnableIRQ(DMA1\_Stream2\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00213}00213\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00214}00214\ \ \ \textcolor{comment}{/*\ UART4\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00215}00215\ \ \ \_\_HAL\_RCC\_UART4\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00216}00216\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00217}00217\ \ \ \textcolor{comment}{/*\ UART4\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00218}00218\ \ \ HAL\_NVIC\_SetPriority(UART4\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00219}00219\ \ \ HAL\_NVIC\_EnableIRQ(UART4\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00220}00220\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00221}00221\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_UART4}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00222}00222\ \textcolor{preprocessor}{\#ifdef\ USE\_UART5}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00223}00223\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(huart-\/>Instance==UART5)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00224}00224\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00225}00225\ \ \ \textcolor{comment}{/*\ DMA1\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00226}00226\ \ \ \_\_HAL\_RCC\_DMA1\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00227}00227\ \ \ \textcolor{comment}{/*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00228}00228\ \ \ HAL\_NVIC\_SetPriority(DMA1\_Stream0\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00229}00229\ \ \ HAL\_NVIC\_EnableIRQ(DMA1\_Stream0\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00230}00230\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00231}00231\ \ \ \textcolor{comment}{/*\ UART5\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00232}00232\ \ \ \_\_HAL\_RCC\_DMA1\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00233}00233\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00234}00234\ \ \ \textcolor{comment}{/*\ UART5\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00235}00235\ \ \ HAL\_NVIC\_SetPriority(UART5\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00236}00236\ \ \ HAL\_NVIC\_EnableIRQ(UART5\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00237}00237\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00238}00238\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_UART5}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00239}00239\ \textcolor{preprocessor}{\#ifdef\ USE\_USART6}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00240}00240\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(huart-\/>Instance==USART6)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00241}00241\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00242}00242\ \ \ \textcolor{comment}{/*\ DMA2\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00243}00243\ \ \ \_\_HAL\_RCC\_DMA2\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00244}00244\ \ \ \textcolor{comment}{/*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00245}00245\ \ \ HAL\_NVIC\_SetPriority(DMA2\_Stream1\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00246}00246\ \ \ HAL\_NVIC\_EnableIRQ(DMA2\_Stream1\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00247}00247\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00248}00248\ \ \ \textcolor{comment}{/*\ USART6\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00249}00249\ \ \ \_\_HAL\_RCC\_USART6\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00250}00250\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00251}00251\ \ \ \textcolor{comment}{/*\ USART6\ interrupt\ Init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00252}00252\ \ \ HAL\_NVIC\_SetPriority(USART6\_IRQn,\ 0,\ 0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00253}00253\ \ \ HAL\_NVIC\_EnableIRQ(USART6\_IRQn);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00254}00254\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00255}00255\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_USART6}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00256}00256\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00257}00257\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00258}00258\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00259}00259\ \textcolor{comment}{\ \ *\ @brief\ \ Deinitialize\ UART\ \&\ DMA\ clock\ and\ interrupt.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00260}00260\ \textcolor{comment}{\ \ *\ @param\ \ huart\ -\/\ указатель\ на\ хендл\ UART\ для\ деинициализации.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00261}00261\ \textcolor{comment}{\ \ *\ @note\ \ \ Чтобы\ не\ генерировать\ функцию\ с\ деиницилизацией\ неиспользуемых\ UART,}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00262}00262\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ дефайнами\ определяются\ используемые\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00263}00263\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00264}00264\ \textcolor{keywordtype}{void}\ UART\_MspDeInit(UART\_HandleTypeDef\ *huart)\ \textcolor{comment}{//\ analog\ for\ hal\ function}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00265}00265\ \{\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00266}00266\ \ \ \textcolor{comment}{//\ rcc,\ dma\ and\ interrupt\ init\ for\ USARTs}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00267}00267\ \ \ \textcolor{comment}{//\ GPIO\ init\ was\ moved\ to\ own\ functions\ UART\_GPIO\_Init\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00268}00268\ \ \ \textcolor{keywordflow}{if}(0);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00269}00269\ \textcolor{preprocessor}{\#ifdef\ USE\_USART1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00270}00270\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(huart-\/>Instance==USART1)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00271}00271\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00272}00272\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00273}00273\ \textcolor{comment}{//\ \ /*\ DMA2\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00274}00274\ \textcolor{comment}{//\ \ \_\_HAL\_RCC\_DMA2\_CLK\_ENABLE();}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00275}00275\ \textcolor{comment}{//\ \ /*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00276}00276\ \textcolor{comment}{//\ \ HAL\_NVIC\_SetPriority(DMA2\_Stream2\_IRQn,\ 0,\ 0);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00277}00277\ \textcolor{comment}{//\ \ HAL\_NVIC\_EnableIRQ(DMA2\_Stream2\_IRQn);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00278}00278\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00279}00279\ \ \ \textcolor{comment}{/*\ USART1\ clock\ reset\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00280}00280\ \ \ \_\_HAL\_RCC\_USART1\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00281}00281\ \ \ \_\_HAL\_RCC\_USART1\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00282}00282\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00283}00283\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_USART1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00284}00284\ \textcolor{preprocessor}{\#ifdef\ USE\_USART2}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00285}00285\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(huart-\/>Instance==USART2)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00286}00286\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00287}00287\ \textcolor{comment}{//\ \ /*\ DMA1\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00288}00288\ \textcolor{comment}{//\ \ \_\_HAL\_RCC\_DMA1\_CLK\_ENABLE();}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00289}00289\ \textcolor{comment}{//\ \ /*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00290}00290\ \textcolor{comment}{//\ \ HAL\_NVIC\_SetPriority(DMA1\_Stream5\_IRQn,\ 0,\ 0);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00291}00291\ \textcolor{comment}{//\ \ HAL\_NVIC\_EnableIRQ(DMA1\_Stream5\_IRQn);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00292}00292\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00293}00293\ \ \ \textcolor{comment}{/*\ USART2\ clock\ reset\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00294}00294\ \ \ \_\_HAL\_RCC\_USART2\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00295}00295\ \ \ \_\_HAL\_RCC\_USART2\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00296}00296\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00297}00297\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_USART2}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00298}00298\ \textcolor{preprocessor}{\#ifdef\ USE\_USART3}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00299}00299\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(huart-\/>Instance==USART3)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00300}00300\ \ \ \{\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00301}00301\ \textcolor{comment}{//\ \ /*\ DMA1\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00302}00302\ \textcolor{comment}{//\ \ \_\_HAL\_RCC\_DMA1\_CLK\_ENABLE();}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00303}00303\ \textcolor{comment}{//\ \ /*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00304}00304\ \textcolor{comment}{//\ \ HAL\_NVIC\_SetPriority(DMA1\_Stream1\_IRQn,\ 0,\ 0);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00305}00305\ \textcolor{comment}{//\ \ HAL\_NVIC\_EnableIRQ(DMA1\_Stream1\_IRQn);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00306}00306\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00307}00307\ \ \ \textcolor{comment}{/*\ USART3\ clock\ reset\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00308}00308\ \ \ \_\_HAL\_RCC\_USART3\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00309}00309\ \ \ \_\_HAL\_RCC\_USART3\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00310}00310\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00311}00311\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_USART3}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00312}00312\ \textcolor{preprocessor}{\#ifdef\ USE\_UART4}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00313}00313\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(huart-\/>Instance==UART4)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00314}00314\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00315}00315\ \textcolor{comment}{//\ \ /*\ DMA1\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00316}00316\ \textcolor{comment}{//\ \ \_\_HAL\_RCC\_DMA1\_CLK\_ENABLE();}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00317}00317\ \textcolor{comment}{//\ \ /*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00318}00318\ \textcolor{comment}{//\ \ HAL\_NVIC\_SetPriority(DMA1\_Stream2\_IRQn,\ 0,\ 0);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00319}00319\ \textcolor{comment}{//\ \ HAL\_NVIC\_EnableIRQ(DMA1\_Stream2\_IRQn);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00320}00320\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00321}00321\ \ \ \textcolor{comment}{/*\ UART4\ clock\ reset\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00322}00322\ \ \ \_\_HAL\_RCC\_UART4\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00323}00323\ \ \ \_\_HAL\_RCC\_UART4\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00324}00324\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00325}00325\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_UART4}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00326}00326\ \textcolor{preprocessor}{\#ifdef\ USE\_UART5}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00327}00327\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(huart-\/>Instance==UART5)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00328}00328\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00329}00329\ \textcolor{comment}{//\ \ /*\ DMA1\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00330}00330\ \textcolor{comment}{//\ \ \_\_HAL\_RCC\_DMA1\_CLK\_ENABLE();}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00331}00331\ \textcolor{comment}{//\ \ /*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00332}00332\ \textcolor{comment}{//\ \ HAL\_NVIC\_SetPriority(DMA1\_Stream0\_IRQn,\ 0,\ 0);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00333}00333\ \textcolor{comment}{//\ \ HAL\_NVIC\_EnableIRQ(DMA1\_Stream0\_IRQn);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00334}00334\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00335}00335\ \ \ \textcolor{comment}{/*\ UART5\ clock\ reset\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00336}00336\ \ \ \_\_HAL\_RCC\_UART5\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00337}00337\ \ \ \_\_HAL\_RCC\_UART5\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00338}00338\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00339}00339\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_UART5}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00340}00340\ \textcolor{preprocessor}{\#ifdef\ USE\_USART6}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00341}00341\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(huart-\/>Instance==USART6)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00342}00342\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00343}00343\ \textcolor{comment}{//\ \ /*\ DMA2\ clock\ enable\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00344}00344\ \textcolor{comment}{//\ \ \_\_HAL\_RCC\_DMA2\_CLK\_ENABLE();}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00345}00345\ \textcolor{comment}{//\ \ /*\ DMA\ interrupt\ init\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00346}00346\ \textcolor{comment}{//\ \ HAL\_NVIC\_SetPriority(DMA2\_Stream1\_IRQn,\ 0,\ 0);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00347}00347\ \textcolor{comment}{//\ \ HAL\_NVIC\_EnableIRQ(DMA2\_Stream1\_IRQn);}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00348}00348\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00349}00349\ \ \ \textcolor{comment}{/*\ USART6\ clock\ reset\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00350}00350\ \ \ \_\_HAL\_RCC\_USART6\_FORCE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00351}00351\ \ \ \_\_HAL\_RCC\_USART6\_RELEASE\_RESET();}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00352}00352\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00353}00353\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ USE\_USART6}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00354}00354\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00355}00355\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00356}00356\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00357}00357\ \textcolor{comment}{\ \ *\ @brief\ \ Check\ that\ uart\ init\ structure\ have\ correct\ values.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00358}00358\ \textcolor{comment}{\ \ *\ @param\ \ suart\ -\/\ указатель\ на\ структуру\ с\ настройками\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00359}00359\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00360}00360\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00361}00361\ HAL\_StatusTypeDef\ Check\_UART\_Init\_Struct(\mbox{\hyperlink{struct_u_a_r_t___settings_type_def}{UART\_SettingsTypeDef}}\ *suart)}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00362}00362\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00363}00363\ \ \ \textcolor{comment}{//\ check\ is\ settings\ are\ valid}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00364}00364\ \ \ \textcolor{keywordflow}{if}\ (!IS\_UART\_INSTANCE(suart-\/>huart.Instance))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00365}00365\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00366}00366\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00367}00367\ \ \ \textcolor{keywordflow}{if}\ (!IS\_UART\_BAUDRATE(suart-\/>huart.Init.BaudRate)\ ||\ (suart-\/>huart.Init.BaudRate\ ==\ NULL))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00368}00368\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00369}00369\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00370}00370\ \ \ \textcolor{keywordflow}{if}\ (!IS\_GPIO\_ALL\_INSTANCE(suart-\/>GPIOx))}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00371}00371\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00372}00372\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00373}00373\ \ \ \textcolor{keywordflow}{if}\ (!IS\_GPIO\_PIN(suart-\/>GPIO\_PIN\_RX)\ \&\&\ !IS\_GPIO\_PIN(suart-\/>GPIO\_PIN\_TX))\ \textcolor{comment}{//\ if\ both\ pins\ arent\ set\ up}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00374}00374\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00375}00375\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00376}00376\ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00377}00377\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00378}00378\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00379}00379\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/UART\ INIT\ FUNCTIONS-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00380}00380\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
|
||||
\end{DoxyCode}
|
||||
114
Doc/latex/____general__uart_8h_source.tex
Normal file
114
Doc/latex/____general__uart_8h_source.tex
Normal file
@@ -0,0 +1,114 @@
|
||||
\doxysection{\+\_\+\+\_\+general\+\_\+uart.\+h}
|
||||
\hypertarget{____general__uart_8h_source}{}\label{____general__uart_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_uart.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_uart.h}}
|
||||
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00001}00001\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00002}00002\ \textcolor{comment}{\ \ **************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00003}00003\ \textcolor{comment}{\ \ *\ @file\ general\_uart.h}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00004}00004\ \textcolor{comment}{\ \ *\ @brief\ Заголовочный\ файл\ для\ модуля\ инициализации\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00005}00005\ \textcolor{comment}{\ \ *************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00006}00006\ \textcolor{preprocessor}{\#ifndef\ \_\_UART\_GENERAL\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00007}00007\ \textcolor{preprocessor}{\#define\ \_\_UART\_GENERAL\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00008}00008\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00009}00009\ \textcolor{comment}{//////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00010}00010\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00011}00011\ \textcolor{preprocessor}{\#define\ HAL\_UART\_MODULE\_ENABLED\ \ \ }\textcolor{comment}{//\ need\ to\ uncomment\ these\ defines\ in\ stm32f4xx\_hal\_conf.h}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00012}00012\ \textcolor{comment}{//\#define\ HAL\_USART\_MODULE\_ENABLED\ \ //\ maybe\ also\ need\ to\ add\ hal\_uart.h/.c\ (source\ code)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00013}00013\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00014}00014\ \textcolor{comment}{//\#define\ USE\_USART1}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00015}00015\ \textcolor{comment}{//\#define\ USE\_USART2}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00016}00016\ \textcolor{comment}{//\#define\ USE\_USART3}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00017}00017\ \textcolor{comment}{//\#define\ USE\_UART4}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00018}00018\ \textcolor{comment}{//\#define\ USE\_UART5}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00019}00019\ \textcolor{comment}{//\#define\ USE\_USART6}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00020}00020\ \textcolor{comment}{/*\ note:\ used\ uart\ defines\ in\ modbus.h\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00021}00021\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00022}00022\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00023}00023\ \textcolor{preprocessor}{\#include\ "{}interface\_config.h"{}}\ \textcolor{comment}{/*\ used\ uart\ defines\ in\ modbus.h\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00024}00024\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00025}00025\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00026}00026\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00027}00027\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00028}00028\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00029}00029\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00030}00030\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00031}00031\ \textcolor{comment}{\ \ *\ @brief\ \ Analog\ for\ HAL\ define.\ Remade\ with\ pointer\ to\ structure.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00032}00032\ \textcolor{comment}{\ \ *\ @note\ \ \ @ref\ \_\_HAL\_LINKDMA.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00033}00033\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00034}00034\ \textcolor{preprocessor}{\#define\ \_\_USER\_LINKDMA(\_\_HANDLE\_\_,\ \_\_PPP\_DMA\_FIELD\_\_,\ \_\_DMA\_HANDLE\_\_)\ \ \ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00035}00035\ \textcolor{preprocessor}{do\{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00036}00036\ \textcolor{preprocessor}{(\_\_HANDLE\_\_)-\/>\_\_PPP\_DMA\_FIELD\_\_\ =\ (\_\_DMA\_HANDLE\_\_);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00037}00037\ \textcolor{preprocessor}{(\_\_DMA\_HANDLE\_\_)-\/>Parent\ =\ (\_\_HANDLE\_\_);\}\ while(0U)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00038}00038\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00039}00039\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00040}00040\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00041}00041\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00042}00042\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00043}00043\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00044}00044\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00045}\mbox{\hyperlink{struct_u_a_r_t___settings_type_def}{00045}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\textcolor{comment}{//\ struct\ with\ settings\ for\ custom\ function}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00046}00046\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00047}00047\ \ \ UART\_HandleTypeDef\ huart;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00048}00048\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00049}00049\ \ \ GPIO\_TypeDef\ *GPIOx;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00050}00050\ \ \ uint16\_t\ GPIO\_PIN\_RX;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00051}00051\ \ \ uint16\_t\ GPIO\_PIN\_TX;}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00052}00052\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00053}00053\ \ \ DMA\_Stream\_TypeDef\ *DMAChannel;\ \textcolor{comment}{//\ DMAChannel\ =\ 0\ if\ doesnt\ need}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00054}00054\ \ \ uint32\_t\ DMA\_CHANNEL\_X;\ \textcolor{comment}{//\ DMAChannel\ =\ 0\ if\ doesnt\ need}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00055}00055\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00056}00056\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00057}00057\ \}\mbox{\hyperlink{struct_u_a_r_t___settings_type_def}{UART\_SettingsTypeDef}};\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00058}00058\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00059}00059\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00060}00060\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00061}00061\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00062}00062\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00063}00063\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00064}00064\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ UART\ with\ UART\_SettingsTypeDef\ structure.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00065}00065\ \textcolor{comment}{\ \ *\ @param\ \ suart\ -\/\ указатель\ на\ структуру\ с\ настройками\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00066}00066\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00067}00067\ \textcolor{comment}{\ \ *\ @note\ \ \ Данная\ структура\ содержит\ хендл\ ЮАРТ\ и\ настройки\ перефирии\ (GPIO)}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00068}00068\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00069}00069\ HAL\_StatusTypeDef\ UART\_Base\_Init(\mbox{\hyperlink{struct_u_a_r_t___settings_type_def}{UART\_SettingsTypeDef}}\ *suart);\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00070}00070\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00071}00071\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ GPIO\ for\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00072}00072\ \textcolor{comment}{\ \ *\ @param\ \ GPIOx\ \ \ \ \ \ \ -\/\ порт\ для\ настройки.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00073}00073\ \textcolor{comment}{\ \ *\ @param\ \ GPIO\_PIN\_RX\ -\/\ пин\ для\ настройки\ на\ прием.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00074}00074\ \textcolor{comment}{\ \ *\ @param\ \ GPIO\_PIN\_TX\ -\/\ пин\ для\ настройки\ на\ передачу.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00075}00075\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00076}00076\ \textcolor{keywordtype}{void}\ UART\_GPIO\_Init(GPIO\_TypeDef\ *GPIOx,\ uint16\_t\ GPIO\_PIN\_RX,\ uint16\_t\ GPIO\_PIN\_TX);\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00077}00077\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00078}00078\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ DMA\ for\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00079}00079\ \textcolor{comment}{\ \ *\ @param\ \ huart\ \ \ \ \ \ \ \ \ -\/\ указатель\ на\ хендл\ UART\ для\ настройки\ DMA.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00080}00080\ \textcolor{comment}{\ \ *\ @param\ \ hdma\_rx\ \ \ \ \ \ \ -\/\ указатель\ на\ хендл\ DMA\ для\ линии\ приема\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00081}00081\ \textcolor{comment}{\ \ *\ @param\ \ DMAChannel\ \ \ \ -\/\ указатель\ на\ канал\ DMA/поток\ DMA\ в\ STM32F407.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00082}00082\ \textcolor{comment}{\ \ *\ @param\ \ DMA\_CHANNEL\_X\ -\/\ канал\ DMA.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00083}00083\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00084}00084\ \textcolor{keywordtype}{void}\ UART\_DMA\_Init(UART\_HandleTypeDef\ *huart,\ DMA\_HandleTypeDef\ *hdma\_rx,\ DMA\_Stream\_TypeDef\ *DMAChannel,\ uint32\_t\ DMA\_CHANNEL\_X);\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00085}00085\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00086}00086\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ UART\ \&\ DMA\ clock\ and\ interrupt.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00087}00087\ \textcolor{comment}{\ \ *\ @param\ \ huart\ -\/\ указатель\ на\ хендл\ UART\ для\ инициализации.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00088}00088\ \textcolor{comment}{\ \ *\ @note\ \ \ Чтобы\ не\ генерировать\ функцию\ с\ иницилизацией\ неиспользуемых\ UART,}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00089}00089\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ дефайнами\ определяются\ используемые\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00090}00090\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00091}00091\ \textcolor{keywordtype}{void}\ UART\_MspInit(UART\_HandleTypeDef\ *huart);\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00092}00092\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00093}00093\ \textcolor{comment}{\ \ *\ @brief\ \ Deinitialize\ UART\ \&\ DMA\ clock\ and\ interrupt.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00094}00094\ \textcolor{comment}{\ \ *\ @param\ \ huart\ -\/\ указатель\ на\ хендл\ UART\ для\ деинициализации.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00095}00095\ \textcolor{comment}{\ \ *\ @note\ \ \ Чтобы\ не\ генерировать\ функцию\ с\ деиницилизацией\ неиспользуемых\ UART,}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00096}00096\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ дефайнами\ в\ rs\_message.h\ определяются\ используемые\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00097}00097\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00098}00098\ \textcolor{keywordtype}{void}\ UART\_MspDeInit(UART\_HandleTypeDef\ *huart);}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00099}00099\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00100}00100\ \textcolor{comment}{/**\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00101}00101\ \textcolor{comment}{\ \ *\ @brief\ \ Check\ that\ uart\ init\ structure\ have\ correct\ values.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00102}00102\ \textcolor{comment}{\ \ *\ @param\ \ suart\ -\/\ указатель\ на\ структуру\ с\ настройками\ UART.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00103}00103\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00104}00104\ \textcolor{comment}{\ \ */}\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00105}00105\ HAL\_StatusTypeDef\ Check\_UART\_Init\_Struct(\mbox{\hyperlink{struct_u_a_r_t___settings_type_def}{UART\_SettingsTypeDef}}\ *suart);\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00106}00106\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00107}00107\ }
|
||||
\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00108}00108\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_UART\_GENERAL\_H\_}}
|
||||
|
||||
\end{DoxyCode}
|
||||
22
Doc/latex/annotated.tex
Normal file
22
Doc/latex/annotated.tex
Normal file
@@ -0,0 +1,22 @@
|
||||
\doxysection{Class List}
|
||||
Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_a_d_c___tracker_type_def}{ADC\+\_\+\+Tracker\+Type\+Def}} \\*Struct for trackers for ADC }{\pageref{struct_a_d_c___tracker_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_a_d_c_channel___tracker_type_def}{ADCChannel\+\_\+\+Tracker\+Type\+Def}} \\*Struct for trackers for ADC Channel }{\pageref{struct_a_d_c_channel___tracker_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \\*Структура светодиода }{\pageref{struct_g_p_i_o___l_e_d_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \\*Структура кнопки }{\pageref{struct_g_p_i_o___switch_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_h_f___stack_frame__t}{HF\+\_\+\+Stack\+Frame\+\_\+t}} \\*Контекст стек-\/фрейма процессора при Hard\+Fault }{\pageref{struct_h_f___stack_frame__t}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_measure___tracker_type_def}{Measure\+\_\+\+Tracker\+Type\+Def}} \\*Struct for trackers for Measure }{\pageref{struct_measure___tracker_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_measure_handle___tracker_type_def}{Measure\+Handle\+\_\+\+Tracker\+Type\+Def}} \\*Struct for trackers for Measure }{\pageref{struct_measure_handle___tracker_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_m_z_k_t___discrete_inputs_type_def}{MZKT\+\_\+\+Discrete\+Inputs\+Type\+Def}} }{\pageref{struct_m_z_k_t___discrete_inputs_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_m_z_k_t___l_e_ds_type_def}{MZKT\+\_\+\+LEDs\+Type\+Def}} }{\pageref{struct_m_z_k_t___l_e_ds_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_r_s___tracker_type_def}{RS\+\_\+\+Tracker\+Type\+Def}} \\*Struct for trackers for RS }{\pageref{struct_r_s___tracker_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_r_t_t___flash_header__t}{RTT\+\_\+\+Flash\+Header\+\_\+t}} \\*Структура RTT, которая будет положена в Flash }{\pageref{struct_r_t_t___flash_header__t}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_s_p_i___settings_type_def}{SPI\+\_\+\+Settings\+Type\+Def}} }{\pageref{struct_s_p_i___settings_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_t_i_m___encoder_type_def}{TIM\+\_\+\+Encoder\+Type\+Def}} }{\pageref{struct_t_i_m___encoder_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_t_i_m___settings_type_def}{TIM\+\_\+\+Settings\+Type\+Def}} }{\pageref{struct_t_i_m___settings_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{struct_u_a_r_t___settings_type_def}{UART\+\_\+\+Settings\+Type\+Def}} }{\pageref{struct_u_a_r_t___settings_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{unionuint16___bit_type_def}{uint16\+\_\+\+Bit\+Type\+Def}} }{\pageref{unionuint16___bit_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{unionuint32___bit_type_def}{uint32\+\_\+\+Bit\+Type\+Def}} }{\pageref{unionuint32___bit_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{unionuint64___bit_type_def}{uint64\+\_\+\+Bit\+Type\+Def}} }{\pageref{unionuint64___bit_type_def}}{}
|
||||
\item\contentsline{section}{\mbox{\hyperlink{unionuint8___bit_type_def}{uint8\+\_\+\+Bit\+Type\+Def}} }{\pageref{unionuint8___bit_type_def}}{}
|
||||
\end{DoxyCompactList}
|
||||
165
Doc/latex/bit__access_8h_source.tex
Normal file
165
Doc/latex/bit__access_8h_source.tex
Normal file
@@ -0,0 +1,165 @@
|
||||
\doxysection{bit\+\_\+access.\+h}
|
||||
\hypertarget{bit__access_8h_source}{}\label{bit__access_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/bit\_access.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/bit\_access.h}}
|
||||
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00001}00001\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00002}00002\ \textcolor{comment}{**************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ mylibs\_defs.h}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Заголочный\ файл\ для\ дефайнов\ библиотеки\ MyLibsGeneral.}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00005}00005\ \textcolor{comment}{**************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00006}00006\ \textcolor{comment}{*\ @defgroup\ BIT\_ACCESS\_DEFINES\ \ \ \ Bit\ access\ defines}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00007}00007\ \textcolor{comment}{*\ @ingroup\ \ MYLIBS\_DEFINES}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00008}00008\ \textcolor{comment}{*\ @brief\ \ \ \ \ Макросы\ и\ typedef'ы\ для\ работы\ с\ битами\ в\ unsigned\ типах.}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00009}00009\ \textcolor{comment}{*\ @details}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00010}00010\ \textcolor{comment}{*\ В\ этом\ файле\ определены\ макросы\ для\ получения\ значения\ конкретного\ бита\string^}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00011}00011\ \textcolor{comment}{*\ -\/\ @ref\ uint8\_bit}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00012}00012\ \textcolor{comment}{*\ -\/\ @ref\ uint16\_bit}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00013}00013\ \textcolor{comment}{*\ -\/\ @ref\ uint32\_bit}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00014}00014\ \textcolor{comment}{*\ -\/\ @ref\ uint64\_bit}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00015}00015\ \textcolor{comment}{*}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00016}00016\ \textcolor{comment}{*\ Особенности\ использования:}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00017}00017\ \textcolor{comment}{*\ \ -\/\ Индекс\ бита\ должен\ быть\ **константой\ на\ этапе\ компиляции**.}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00018}00018\ \textcolor{comment}{*\ \ \ \ Пример\ верного\ использования:}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00019}00019\ \textcolor{comment}{*\ \ \ \ \ \ @code}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00020}00020\ \textcolor{comment}{*\ \ \ \ \ \ \ \ uint8\_t\ val\ =\ 0x05;}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00021}00021\ \textcolor{comment}{*\ \ \ \ \ \ \ \ uint8\_t\ b2\ =\ uint8\_bit(val,\ 2);\ //\ Получить\ бит\ 2}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00022}00022\ \textcolor{comment}{*\ \ \ \ \ \ \ \ uint8\_bit(val,\ 6)\ =\ 1;\ //\ Записать\ бит\ 6}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00023}00023\ \textcolor{comment}{*\ \ \ \ \ \ @endcode}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00024}00024\ \textcolor{comment}{*\ \ -\/\ Нельзя\ использовать\ переменные\ в\ качестве\ индекса:}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00025}00025\ \textcolor{comment}{*\ \ \ \ \ \ @code}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00026}00026\ \textcolor{comment}{*\ \ \ \ \ \ \ \ uint8\_t\ i\ =\ 2;}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00027}00027\ \textcolor{comment}{*\ \ \ \ \ \ \ \ uint8\_bit(val,\ i);\ //\ Не\ сработает!}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00028}00028\ \textcolor{comment}{*\ \ \ \ \ \ @endcode}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00029}00029\ \textcolor{comment}{*\ \ -\/\ Макросы\ возвращают\ 0\ или\ 1.}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00030}00030\ \textcolor{comment}{*\ \ -\/\ Доступ\ реализован\ через\ приведение\ к\ \`{}union`\ с\ битовыми\ полями,\ поэтому\ это}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00031}00031\ \textcolor{comment}{*\ \ \ \ безопасный\ способ\ работы\ с\ отдельными\ битами\ без\ ручного\ сдвига\ и\ маскирования.}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00032}00032\ \textcolor{comment}{*\ @\{}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00033}00033\ \textcolor{comment}{*************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00034}00034\ \textcolor{preprocessor}{\#ifndef\ \_\_BIT\_ACCESS\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00035}00035\ \textcolor{preprocessor}{\#define\ \_\_BIT\_ACCESS\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00036}00036\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00037}00037\ }
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00038}00038\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00039}\mbox{\hyperlink{unionuint8___bit_type_def}{00039}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{union}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00040}00040\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00041}00041\ \ \ uint8\_t\ all;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00042}00042\ \ \ \textcolor{keyword}{struct}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00043}00043\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00044}00044\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit0:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00045}00045\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit1:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00046}00046\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit2:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00047}00047\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit3:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00048}00048\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit4:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00049}00049\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit5:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00050}00050\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit6:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00051}00051\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit7:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00052}00052\ \ \ \}bit;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00053}00053\ \}\mbox{\hyperlink{unionuint8___bit_type_def}{uint8\_BitTypeDef}};}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00054}00054\ }
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00055}\mbox{\hyperlink{unionuint16___bit_type_def}{00055}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{union}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00056}00056\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00057}00057\ \ \ uint16\_t\ all;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00058}00058\ \ \ \textcolor{keyword}{struct}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00059}00059\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00060}00060\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit0:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00061}00061\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit1:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00062}00062\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit2:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00063}00063\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit3:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00064}00064\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit4:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00065}00065\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit5:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00066}00066\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit6:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00067}00067\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit7:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00068}00068\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit8:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00069}00069\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit9:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00070}00070\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit10:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00071}00071\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit11:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00072}00072\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit12:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00073}00073\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit13:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00074}00074\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit14:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00075}00075\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit15:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00076}00076\ \ \ \}bit;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00077}00077\ \}\mbox{\hyperlink{unionuint16___bit_type_def}{uint16\_BitTypeDef}};}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00078}00078\ }
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00079}00079\ }
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00080}\mbox{\hyperlink{unionuint32___bit_type_def}{00080}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{union}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00081}00081\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00082}00082\ \ \ uint32\_t\ all;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00083}00083\ \ \ \textcolor{keyword}{struct}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00084}00084\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00085}00085\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit0:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit1:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit2:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit3:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00086}00086\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit4:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit5:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit6:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit7:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00087}00087\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit8:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit9:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit10:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit11:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00088}00088\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit12:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit13:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit14:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit15:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00089}00089\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit16:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit17:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit18:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit19:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00090}00090\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit20:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit21:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit22:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit23:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00091}00091\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit24:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit25:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit26:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit27:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00092}00092\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit28:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit29:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit30:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit31:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00093}00093\ \ \ \}bit;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00094}00094\ \}\mbox{\hyperlink{unionuint32___bit_type_def}{uint32\_BitTypeDef}};}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00095}00095\ }
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00096}00096\ }
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00097}\mbox{\hyperlink{unionuint64___bit_type_def}{00097}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{union}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00098}00098\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00099}00099\ \ \ uint64\_t\ all;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00100}00100\ \ \ \textcolor{keyword}{struct}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00101}00101\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00102}00102\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit0:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit1:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit2:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit3:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00103}00103\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit4:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit5:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit6:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit7:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00104}00104\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit8:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit9:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit10:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit11:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00105}00105\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit12:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit13:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit14:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit15:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00106}00106\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit16:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit17:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit18:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit19:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00107}00107\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit20:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit21:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit22:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit23:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00108}00108\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit24:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit25:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit26:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit27:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00109}00109\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit28:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit29:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit30:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit31:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00110}00110\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit32:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit33:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit34:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit35:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00111}00111\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit36:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit37:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit38:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit39:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00112}00112\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit40:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit41:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit42:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit43:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00113}00113\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit44:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit45:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit46:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit47:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00114}00114\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit48:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit49:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit50:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit51:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00115}00115\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit52:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit53:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit54:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit55:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00116}00116\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit56:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit57:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit58:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit59:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00117}00117\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit60:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit61:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit62:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit63:1;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00118}00118\ \ \ \}bit;}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00119}00119\ \}\mbox{\hyperlink{unionuint64___bit_type_def}{uint64\_BitTypeDef}};}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00120}00120\ }
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00121}00121\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00122}00122\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00123}00123\ \textcolor{comment}{\ \ *\ @brief\ Получить\ n-\/й\ бит\ из\ uint8\_t}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00124}00124\ \textcolor{comment}{\ \ *\ @param\ \_uint8\_\ Переменная\ типа\ uint8\_t}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00125}00125\ \textcolor{comment}{\ \ *\ @param\ \_bit\_\ \ \ Константный\ номер\ бита\ (0..7)}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00126}00126\ \textcolor{comment}{\ \ *\ @return\ Значение\ выбранного\ бита\ (0\ или\ 1)}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00127}00127\ \textcolor{comment}{\ \ *\ @note\ \ \ \ Индекс\ бита\ должен\ быть\ известен\ на\ этапе\ компиляции!}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00128}00128\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00129}\mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{00129}}\ \textcolor{preprocessor}{\#define\ uint8\_bit(\_uint8\_,\ \_bit\_)\ \ \ \ \ \ \ (*(uint8\_BitTypeDef\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00130}00130\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00131}00131\ \textcolor{comment}{\ \ *\ @brief\ Получить\ n-\/й\ бит\ из\ uint16\_t}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00132}00132\ \textcolor{comment}{\ \ *\ @param\ \_uint16\_\ Переменная\ типа\ uint16\_t}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00133}00133\ \textcolor{comment}{\ \ *\ @param\ \_bit\_\ \ \ \ Константный\ номер\ бита\ (0..15)}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00134}00134\ \textcolor{comment}{\ \ *\ @return\ Значение\ выбранного\ бита\ (0\ или\ 1)}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00135}00135\ \textcolor{comment}{\ \ *\ @note\ \ \ \ Индекс\ бита\ должен\ быть\ известен\ на\ этапе\ компиляции!}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00136}00136\ \textcolor{comment}{\ \ */}\textcolor{preprocessor}{}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00137}\mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}{00137}}\ \textcolor{preprocessor}{\#define\ uint16\_bit(\_uint8\_,\ \_bit\_)\ \ \ \ \ \ (*(uint16\_BitTypeDef\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00138}00138\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00139}00139\ \textcolor{comment}{\ \ *\ @brief\ Получить\ n-\/й\ бит\ из\ uint32\_t}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00140}00140\ \textcolor{comment}{\ \ *\ @param\ \_uint32\_\ Переменная\ типа\ uint32\_t}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00141}00141\ \textcolor{comment}{\ \ *\ @param\ \_bit\_\ \ \ \ Константный\ номер\ бита\ (0..31)}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00142}00142\ \textcolor{comment}{\ \ *\ @return\ Значение\ выбранного\ бита\ (0\ или\ 1)}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00143}00143\ \textcolor{comment}{\ \ *\ @note\ \ \ \ Индекс\ бита\ должен\ быть\ известен\ на\ этапе\ компиляции!}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00144}00144\ \textcolor{comment}{\ \ */}\textcolor{preprocessor}{}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00145}\mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}{00145}}\ \textcolor{preprocessor}{\#define\ uint32\_bit(\_uint8\_,\ \_bit\_)\ \ \ \ \ \ (*(uint32\_BitTypeDef\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00146}00146\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00147}00147\ \textcolor{comment}{\ \ *\ @brief\ Получить\ n-\/й\ бит\ из\ uint64\_t}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00148}00148\ \textcolor{comment}{\ \ *\ @param\ \_uint64\_\ Переменная\ типа\ uint64\_t}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00149}00149\ \textcolor{comment}{\ \ *\ @param\ \_bit\_\ \ \ \ Константный\ номер\ бита\ (0..63)}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00150}00150\ \textcolor{comment}{\ \ *\ @return\ Значение\ выбранного\ бита\ (0\ или\ 1)}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00151}00151\ \textcolor{comment}{\ \ *\ @note\ \ \ \ Индекс\ бита\ должен\ быть\ известен\ на\ этапе\ компиляции!}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00152}00152\ \textcolor{comment}{\ \ */}\textcolor{preprocessor}{}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00153}\mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}{00153}}\ \textcolor{preprocessor}{\#define\ uint64\_bit(\_uint8\_,\ \_bit\_)\ \ \ \ \ \ (*(uint64\_BitTypeDef\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00154}00154\ }
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00155}00155\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\_\_BIT\_ACCESS\_H\_\ }}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00156}00156\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00157}00157\ \textcolor{comment}{/**\ BIT\_ACCESS\_DEFINES}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00158}00158\ \textcolor{comment}{\ \ *\ @\}}}
|
||||
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00159}00159\ \textcolor{comment}{\ \ */}}
|
||||
|
||||
\end{DoxyCode}
|
||||
745
Doc/latex/doxygen.sty
Normal file
745
Doc/latex/doxygen.sty
Normal file
@@ -0,0 +1,745 @@
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{doxygen}
|
||||
|
||||
% Packages used by this style file
|
||||
\RequirePackage{alltt}
|
||||
%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
|
||||
\RequirePackage{calc}
|
||||
\RequirePackage{float}
|
||||
%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
|
||||
\RequirePackage{verbatim}
|
||||
\RequirePackage[table]{xcolor}
|
||||
\RequirePackage{longtable_doxygen}
|
||||
\RequirePackage{tabu_doxygen}
|
||||
\RequirePackage{fancyvrb}
|
||||
\RequirePackage{tabularx}
|
||||
\RequirePackage{multicol}
|
||||
\RequirePackage{multirow}
|
||||
\RequirePackage{hanging}
|
||||
\RequirePackage{ifpdf}
|
||||
\RequirePackage{adjustbox}
|
||||
\RequirePackage{amssymb}
|
||||
\RequirePackage{stackengine}
|
||||
\RequirePackage{enumitem}
|
||||
\RequirePackage{alphalph}
|
||||
\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis
|
||||
|
||||
%---------- Internal commands used in this style file ----------------
|
||||
|
||||
\newcommand{\ensurespace}[1]{%
|
||||
\begingroup%
|
||||
\setlength{\dimen@}{#1}%
|
||||
\vskip\z@\@plus\dimen@%
|
||||
\penalty -100\vskip\z@\@plus -\dimen@%
|
||||
\vskip\dimen@%
|
||||
\penalty 9999%
|
||||
\vskip -\dimen@%
|
||||
\vskip\z@skip% hide the previous |\vskip| from |\addvspace|
|
||||
\endgroup%
|
||||
}
|
||||
|
||||
\newcommand{\DoxyHorRuler}[1]{%
|
||||
\setlength{\parskip}{0ex plus 0ex minus 0ex}%
|
||||
\ifthenelse{#1=0}%
|
||||
{%
|
||||
\hrule%
|
||||
}%
|
||||
{%
|
||||
\hrulefilll%
|
||||
}%
|
||||
}
|
||||
\newcommand{\DoxyLabelFont}{}
|
||||
\newcommand{\entrylabel}[1]{%
|
||||
{%
|
||||
\parbox[b]{\labelwidth-4pt}{%
|
||||
\makebox[0pt][l]{\DoxyLabelFont#1}%
|
||||
\vspace{1.5\baselineskip}%
|
||||
}%
|
||||
}%
|
||||
}
|
||||
|
||||
\newenvironment{DoxyDesc}[1]{%
|
||||
\ensurespace{4\baselineskip}%
|
||||
\begin{list}{}{%
|
||||
\settowidth{\labelwidth}{20pt}%
|
||||
%\setlength{\parsep}{0pt}%
|
||||
\setlength{\itemsep}{0pt}%
|
||||
\setlength{\leftmargin}{\labelwidth+\labelsep}%
|
||||
\renewcommand{\makelabel}{\entrylabel}%
|
||||
}%
|
||||
\item[#1]%
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
\newsavebox{\xrefbox}
|
||||
\newlength{\xreflength}
|
||||
\newcommand{\xreflabel}[1]{%
|
||||
\sbox{\xrefbox}{#1}%
|
||||
\setlength{\xreflength}{\wd\xrefbox}%
|
||||
\ifthenelse{\xreflength>\labelwidth}{%
|
||||
\begin{minipage}{\textwidth}%
|
||||
\setlength{\parindent}{0pt}%
|
||||
\hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
|
||||
\end{minipage}%
|
||||
}{%
|
||||
\parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
|
||||
}%
|
||||
}
|
||||
|
||||
%---------- Commands used by doxygen LaTeX output generator ----------
|
||||
|
||||
% Used by <pre> ... </pre>
|
||||
\newenvironment{DoxyPre}{%
|
||||
\small%
|
||||
\begin{alltt}%
|
||||
}{%
|
||||
\end{alltt}%
|
||||
\normalsize%
|
||||
}
|
||||
% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output.
|
||||
\newlength{\CodeWidthChar}
|
||||
\newlength{\CodeHeightChar}
|
||||
\settowidth{\CodeWidthChar}{?}
|
||||
\settoheight{\CodeHeightChar}{?}
|
||||
% Necessary for hanging indent
|
||||
\newlength{\DoxyCodeWidth}
|
||||
|
||||
\newcommand\DoxyCodeLine[1]{
|
||||
\ifthenelse{\equal{\detokenize{#1}}{}}
|
||||
{
|
||||
\vspace*{\baselineskip}
|
||||
}
|
||||
{
|
||||
\hangpara{\DoxyCodeWidth}{1}{#1}\par
|
||||
}
|
||||
}
|
||||
|
||||
\newcommand\NiceSpace{%
|
||||
\discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}%
|
||||
}
|
||||
|
||||
% Used by @code ... @endcode
|
||||
\newenvironment{DoxyCode}[1]{%
|
||||
\par%
|
||||
\vspace{2pt}%
|
||||
\scriptsize%
|
||||
\normalfont\ttfamily%
|
||||
\rightskip0pt plus 1fil%
|
||||
\settowidth{\DoxyCodeWidth}{000000}%
|
||||
\settowidth{\CodeWidthChar}{?}%
|
||||
\settoheight{\CodeHeightChar}{?}%
|
||||
\setlength{\parskip}{0ex plus 0ex minus 0ex}%
|
||||
\ifthenelse{\equal{#1}{0}}%
|
||||
{%
|
||||
{\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces%
|
||||
}%
|
||||
{%
|
||||
{\lccode`~32 \lowercase{\global\let~}}\obeyspaces%
|
||||
}%
|
||||
\vspace{2pt}%
|
||||
}{%
|
||||
\normalfont%
|
||||
\normalsize%
|
||||
\settowidth{\CodeWidthChar}{?}%
|
||||
\settoheight{\CodeHeightChar}{?}%
|
||||
}
|
||||
|
||||
% Redefining not defined characters, i.e. "Replacement Character" in tex output.
|
||||
\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{%
|
||||
\textcolor{white}{\sffamily\bfseries\small ?}}{%
|
||||
\rotatebox{45}{$\blacksquare$}}}}
|
||||
|
||||
% Used by @example, @include, @includelineno and @dontinclude
|
||||
\newenvironment{DoxyCodeInclude}[1]{%
|
||||
\DoxyCode{#1}%
|
||||
}{%
|
||||
\endDoxyCode%
|
||||
}
|
||||
|
||||
% Used by @verbatim ... @endverbatim
|
||||
\newenvironment{DoxyVerb}{%
|
||||
\par%
|
||||
\footnotesize%
|
||||
\verbatim%
|
||||
}{%
|
||||
\endverbatim%
|
||||
\normalsize%
|
||||
}
|
||||
|
||||
% Used by @verbinclude
|
||||
\newenvironment{DoxyVerbInclude}{%
|
||||
\DoxyVerb%
|
||||
}{%
|
||||
\endDoxyVerb%
|
||||
}
|
||||
|
||||
% Used by numbered lists (using '-#' or <ol> ... </ol>)
|
||||
\setlistdepth{12}
|
||||
\newlist{DoxyEnumerate}{enumerate}{12}
|
||||
\setlist[DoxyEnumerate,1]{label=\arabic*.}
|
||||
\setlist[DoxyEnumerate,2]{label=(\enumalphalphcnt*)}
|
||||
\setlist[DoxyEnumerate,3]{label=\roman*.}
|
||||
\setlist[DoxyEnumerate,4]{label=\enumAlphAlphcnt*.}
|
||||
\setlist[DoxyEnumerate,5]{label=\arabic*.}
|
||||
\setlist[DoxyEnumerate,6]{label=(\enumalphalphcnt*)}
|
||||
\setlist[DoxyEnumerate,7]{label=\roman*.}
|
||||
\setlist[DoxyEnumerate,8]{label=\enumAlphAlphcnt*.}
|
||||
\setlist[DoxyEnumerate,9]{label=\arabic*.}
|
||||
\setlist[DoxyEnumerate,10]{label=(\enumalphalphcnt*)}
|
||||
\setlist[DoxyEnumerate,11]{label=\roman*.}
|
||||
\setlist[DoxyEnumerate,12]{label=\enumAlphAlphcnt*.}
|
||||
|
||||
% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
|
||||
\setlistdepth{12}
|
||||
\newlist{DoxyItemize}{itemize}{12}
|
||||
\setlist[DoxyItemize]{label=\textperiodcentered}
|
||||
|
||||
\setlist[DoxyItemize,1]{label=\textbullet}
|
||||
\setlist[DoxyItemize,2]{label=\normalfont\bfseries \textendash}
|
||||
\setlist[DoxyItemize,3]{label=\textasteriskcentered}
|
||||
\setlist[DoxyItemize,4]{label=\textperiodcentered}
|
||||
|
||||
% Used for check boxes
|
||||
\newcommand{\DoxyUnchecked}{$\square$}
|
||||
\newcommand{\DoxyChecked}{\rlap{\raisebox{0.3ex}{\hspace{0.4ex}\tiny \checkmark}}$\square$}
|
||||
|
||||
% Used by description lists (using <dl> ... </dl>)
|
||||
\newenvironment{DoxyDescription}{%
|
||||
\description%
|
||||
}{%
|
||||
\enddescription%
|
||||
}
|
||||
|
||||
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
|
||||
% (only if caption is specified)
|
||||
\newenvironment{DoxyImage}{%
|
||||
\begin{figure}[H]%
|
||||
\centering%
|
||||
}{%
|
||||
\end{figure}%
|
||||
}
|
||||
|
||||
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
|
||||
% (only if no caption is specified)
|
||||
\newenvironment{DoxyImageNoCaption}{%
|
||||
\begin{center}%
|
||||
}{%
|
||||
\end{center}%
|
||||
}
|
||||
|
||||
% Used by @image
|
||||
% (only if inline is specified)
|
||||
\newenvironment{DoxyInlineImage}{%
|
||||
}{%
|
||||
}
|
||||
|
||||
% Used by @attention
|
||||
\newenvironment{DoxyAttention}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @important
|
||||
\newenvironment{DoxyImportant}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @author and @authors
|
||||
\newenvironment{DoxyAuthor}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @date
|
||||
\newenvironment{DoxyDate}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @invariant
|
||||
\newenvironment{DoxyInvariant}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @note
|
||||
\newenvironment{DoxyNote}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @post
|
||||
\newenvironment{DoxyPostcond}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @pre
|
||||
\newenvironment{DoxyPrecond}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @copyright
|
||||
\newenvironment{DoxyCopyright}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @remark
|
||||
\newenvironment{DoxyRemark}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @return and @returns
|
||||
\newenvironment{DoxyReturn}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @since
|
||||
\newenvironment{DoxySince}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @see
|
||||
\newenvironment{DoxySeeAlso}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @version
|
||||
\newenvironment{DoxyVersion}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @warning
|
||||
\newenvironment{DoxyWarning}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by @par and @paragraph
|
||||
\newenvironment{DoxyParagraph}[1]{%
|
||||
\begin{DoxyDesc}{#1}%
|
||||
}{%
|
||||
\end{DoxyDesc}%
|
||||
}
|
||||
|
||||
% Used by parameter lists
|
||||
\newenvironment{DoxyParams}[2][]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\ifthenelse{\equal{#1}{}}%
|
||||
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description
|
||||
{\ifthenelse{\equal{#1}{1}}%
|
||||
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc
|
||||
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc
|
||||
}
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu*}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used for fields of simple structs
|
||||
\newenvironment{DoxyFields}[1]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}%
|
||||
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu*}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used for fields simple class style enums
|
||||
\newenvironment{DoxyEnumFields}[2][]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\ifthenelse{\equal{#1}{2}}%
|
||||
{\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}}%
|
||||
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,r]|X[-1,l]|}}% with init value
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu*}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used for parameters within a detailed function description
|
||||
\newenvironment{DoxyParamCaption}{%
|
||||
\renewcommand{\item}[3][]{\\ \hspace*{2.0cm} ##1 {\em ##2}##3}%
|
||||
}{%
|
||||
}
|
||||
|
||||
% Used by return value lists
|
||||
\newenvironment{DoxyRetVals}[1]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu*}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used by exception lists
|
||||
\newenvironment{DoxyExceptions}[1]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu*}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used by template parameter lists
|
||||
\newenvironment{DoxyTemplParams}[1]{%
|
||||
\tabulinesep=1mm%
|
||||
\par%
|
||||
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endfirsthead%
|
||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
||||
\hline%
|
||||
\endhead%
|
||||
}{%
|
||||
\end{longtabu*}%
|
||||
\vspace{6pt}%
|
||||
}
|
||||
|
||||
% Used for member lists
|
||||
\newenvironment{DoxyCompactItemize}{%
|
||||
\begin{itemize}%
|
||||
\setlength{\itemsep}{-3pt}%
|
||||
\setlength{\parsep}{0pt}%
|
||||
\setlength{\topsep}{0pt}%
|
||||
\setlength{\partopsep}{0pt}%
|
||||
}{%
|
||||
\end{itemize}%
|
||||
}
|
||||
|
||||
% Used for member descriptions
|
||||
\newenvironment{DoxyCompactList}{%
|
||||
\begin{list}{}{%
|
||||
\setlength{\leftmargin}{0.5cm}%
|
||||
\setlength{\itemsep}{0pt}%
|
||||
\setlength{\parsep}{0pt}%
|
||||
\setlength{\topsep}{0pt}%
|
||||
\renewcommand{\makelabel}{\hfill}%
|
||||
}%
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used for reference lists (@bug, @deprecated, @todo, etc.)
|
||||
\newenvironment{DoxyRefList}{%
|
||||
\begin{list}{}{%
|
||||
\setlength{\labelwidth}{10pt}%
|
||||
\setlength{\leftmargin}{\labelwidth}%
|
||||
\addtolength{\leftmargin}{\labelsep}%
|
||||
\renewcommand{\makelabel}{\xreflabel}%
|
||||
}%
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used by @bug, @deprecated, @todo, etc.
|
||||
\newenvironment{DoxyRefDesc}[1]{%
|
||||
\begin{list}{}{%
|
||||
\renewcommand\makelabel[1]{\textbf{##1}}%
|
||||
\settowidth\labelwidth{\makelabel{#1}}%
|
||||
\setlength\leftmargin{\labelwidth+\labelsep}%
|
||||
}%
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used by parameter lists and simple sections
|
||||
\newenvironment{Desc}
|
||||
{\begin{list}{}{%
|
||||
\settowidth{\labelwidth}{20pt}%
|
||||
\setlength{\parsep}{0pt}%
|
||||
\setlength{\itemsep}{0pt}%
|
||||
\setlength{\leftmargin}{\labelwidth+\labelsep}%
|
||||
\renewcommand{\makelabel}{\entrylabel}%
|
||||
}
|
||||
}{%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used by tables
|
||||
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
|
||||
\newenvironment{TabularC}[1]%
|
||||
{\tabulinesep=1mm
|
||||
\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}%
|
||||
{\end{longtabu*}\par}%
|
||||
|
||||
\newenvironment{TabularNC}[1]%
|
||||
{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}%
|
||||
{\end{tabu}\par}%
|
||||
|
||||
% Used for member group headers
|
||||
\newenvironment{Indent}{%
|
||||
\begin{list}{}{%
|
||||
\setlength{\leftmargin}{0.5cm}%
|
||||
}%
|
||||
\item[]\ignorespaces%
|
||||
}{%
|
||||
\unskip%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
% Used when hyperlinks are turned on
|
||||
\newcommand{\doxylink}[2]{%
|
||||
\mbox{\hyperlink{#1}{#2}}%
|
||||
}
|
||||
|
||||
% Used for the cite command
|
||||
\newcommand{\DoxyCite}[3]{%
|
||||
\ifthenelse{#3=1}% 1 with square parenthesis
|
||||
{
|
||||
\ifthenelse{\equal{#2}{number}}%
|
||||
{ \cite{#1} }%
|
||||
{%
|
||||
\ifthenelse{\equal{#2}{shortauthor}}%
|
||||
{ \citetext{\citeauthor{#1}} }%
|
||||
{%
|
||||
\ifthenelse{\equal{#2}{year}}%
|
||||
{ \citeyearpar{#1} }%
|
||||
{}%
|
||||
}%
|
||||
}%
|
||||
}%
|
||||
{%
|
||||
\ifthenelse{\equal{#2}{number}}%
|
||||
{ \citealp{#1} }%
|
||||
{%
|
||||
\ifthenelse{\equal{#2}{shortauthor}}%
|
||||
{ \citeauthor{#1} }%
|
||||
{%
|
||||
\ifthenelse{\equal{#2}{year}}%
|
||||
{ \citeyear{#1} }%
|
||||
{}%
|
||||
}%
|
||||
}%
|
||||
}%
|
||||
}
|
||||
|
||||
% Used when hyperlinks are turned on
|
||||
% Third argument is the SectionType, see the doxygen internal
|
||||
% documentation for the values (relevant: Page ... Subsubsection).
|
||||
\newcommand{\doxysectlink}[3]{%
|
||||
\mbox{\hyperlink{#1}{#2}}%
|
||||
}
|
||||
% Used when hyperlinks are turned off
|
||||
\newcommand{\doxyref}[3]{%
|
||||
\textbf{#1} (\textnormal{#2}\,\pageref{#3})%
|
||||
}
|
||||
|
||||
% Used when hyperlinks are turned off
|
||||
% Fourth argument is the SectionType, see the doxygen internal
|
||||
% documentation for the values (relevant: Page ... Subsubsection).
|
||||
\newcommand{\doxysectref}[4]{%
|
||||
\textbf{#1} (\textnormal{#2}\,\pageref{#3})%
|
||||
}
|
||||
|
||||
% Used to link to a table when hyperlinks are turned on
|
||||
\newcommand{\doxytablelink}[2]{%
|
||||
\ref{#1}%
|
||||
}
|
||||
|
||||
% Used to link to a table when hyperlinks are turned off
|
||||
\newcommand{\doxytableref}[3]{%
|
||||
\ref{#3}%
|
||||
}
|
||||
|
||||
% Used by @addindex
|
||||
\newcommand{\lcurly}{\{}
|
||||
\newcommand{\rcurly}{\}}
|
||||
|
||||
% Colors used for syntax highlighting
|
||||
\definecolor{comment}{rgb}{0.5,0.0,0.0}
|
||||
\definecolor{keyword}{rgb}{0.0,0.5,0.0}
|
||||
\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
|
||||
\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
|
||||
\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
|
||||
\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
|
||||
\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
|
||||
\definecolor{xmlcdata}{rgb}{0.0,0.0,0.0}
|
||||
\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
|
||||
\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
|
||||
\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
|
||||
\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
|
||||
|
||||
% Color used for table heading
|
||||
\newcommand{\tableheadbgcolor}{lightgray}%
|
||||
|
||||
% Version of hypertarget with correct landing location
|
||||
\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
|
||||
|
||||
% possibility to have sections etc. be within the margins
|
||||
% unfortunately had to copy part of book.cls and add \raggedright
|
||||
\makeatletter
|
||||
\newcounter{subsubsubsection}[subsubsection]
|
||||
\newcounter{subsubsubsubsection}[subsubsubsection]
|
||||
\newcounter{subsubsubsubsubsection}[subsubsubsubsection]
|
||||
\newcounter{subsubsubsubsubsubsection}[subsubsubsubsubsection]
|
||||
\renewcommand{\thesubsubsubsection}{\thesubsubsection.\arabic{subsubsubsection}}
|
||||
\renewcommand{\thesubsubsubsubsection}{\thesubsubsubsection.\arabic{subsubsubsubsection}}
|
||||
\renewcommand{\thesubsubsubsubsubsection}{\thesubsubsubsubsection.\arabic{subsubsubsubsubsection}}
|
||||
\renewcommand{\thesubsubsubsubsubsubsection}{\thesubsubsubsubsubsection.\arabic{subsubsubsubsubsubsection}}
|
||||
\newcommand{\subsubsubsectionmark}[1]{}
|
||||
\newcommand{\subsubsubsubsectionmark}[1]{}
|
||||
\newcommand{\subsubsubsubsubsectionmark}[1]{}
|
||||
\newcommand{\subsubsubsubsubsubsectionmark}[1]{}
|
||||
\def\toclevel@subsubsubsection{4}
|
||||
\def\toclevel@subsubsubsubsection{5}
|
||||
\def\toclevel@subsubsubsubsubsection{6}
|
||||
\def\toclevel@subsubsubsubsubsubsection{7}
|
||||
\def\toclevel@paragraph{8}
|
||||
\def\toclevel@subparagraph{9}
|
||||
|
||||
\newcommand\doxysection{\@startsection {section}{1}{\z@}%
|
||||
{-3.5ex \@plus -1ex \@minus -.2ex}%
|
||||
{2.3ex \@plus.2ex}%
|
||||
{\raggedright\normalfont\Large\bfseries}}
|
||||
\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\large\bfseries}}
|
||||
\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\normalsize\bfseries}}
|
||||
\newcommand\doxysubsubsubsection{\@startsection{subsubsubsection}{4}{\z@}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\normalsize\bfseries}}
|
||||
\newcommand\doxysubsubsubsubsection{\@startsection{subsubsubsubsection}{5}{\z@}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\normalsize\bfseries}}
|
||||
\newcommand\doxysubsubsubsubsubsection{\@startsection{subsubsubsubsubsection}{6}{\z@}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\normalsize\bfseries}}
|
||||
\newcommand\doxysubsubsubsubsubsubsection{\@startsection{subsubsubsubsubsubsection}{7}{\z@}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\normalsize\bfseries}}
|
||||
\newcommand\doxyparagraph{\@startsection{paragraph}{8}{\z@}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\normalsize\bfseries}}
|
||||
\newcommand\doxysubparagraph{\@startsection{subparagraph}{9}{\parindent}%
|
||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||||
{1.5ex \@plus .2ex}%
|
||||
{\raggedright\normalfont\normalsize\bfseries}}
|
||||
|
||||
\newcommand\l@subsubsubsection{\@dottedtocline{4}{10.0em}{7.8em}}
|
||||
\newcommand\l@subsubsubsubsection{\@dottedtocline{5}{13.0em}{9.4em}}
|
||||
\newcommand\l@subsubsubsubsubsection{\@dottedtocline{6}{15.0em}{11em}}
|
||||
\newcommand\l@subsubsubsubsubsubsection{\@dottedtocline{7}{18.0em}{12.6em}}
|
||||
\renewcommand\l@paragraph{\@dottedtocline{8}{21.0em}{14.2em}}
|
||||
\renewcommand\l@subparagraph{\@dottedtocline{9}{24.0em}{15.8em}}
|
||||
\makeatother
|
||||
% the sectsty doesn't look to be maintained but gives, in our case, some warning like:
|
||||
% LaTeX Warning: Command \underline has changed.
|
||||
% Check if current package is valid.
|
||||
% unfortunately had to copy the relevant part
|
||||
\newcommand*{\doxypartfont} [1]
|
||||
{\gdef\SS@partnumberfont{\SS@sectid{0}\SS@nopart\SS@makeulinepartchap#1}
|
||||
\gdef\SS@parttitlefont{\SS@sectid{0}\SS@titlepart\SS@makeulinepartchap#1}}
|
||||
\newcommand*{\doxychapterfont} [1]
|
||||
{\gdef\SS@chapnumfont{\SS@sectid{1}\SS@nopart\SS@makeulinepartchap#1}
|
||||
\gdef\SS@chaptitlefont{\SS@sectid{1}\SS@titlepart\SS@makeulinepartchap#1}}
|
||||
\newcommand*{\doxysectionfont} [1]
|
||||
{\gdef\SS@sectfont{\SS@sectid{2}\SS@rr\SS@makeulinesect#1}}
|
||||
\newcommand*{\doxysubsectionfont} [1]
|
||||
{\gdef\SS@subsectfont{\SS@sectid{3}\SS@rr\SS@makeulinesect#1}}
|
||||
\newcommand*{\doxysubsubsectionfont} [1]
|
||||
{\gdef\SS@subsubsectfont{\SS@sectid{4}\SS@rr\SS@makeulinesect#1}}
|
||||
\newcommand*{\doxyparagraphfont} [1]
|
||||
{\gdef\SS@parafont{\SS@sectid{5}\SS@rr\SS@makeulinesect#1}}
|
||||
\newcommand*{\doxysubparagraphfont} [1]
|
||||
{\gdef\SS@subparafont{\SS@sectid{6}\SS@rr\SS@makeulinesect#1}}
|
||||
\newcommand*{\doxyminisecfont} [1]
|
||||
{\gdef\SS@minisecfont{\SS@sectid{7}\SS@rr\SS@makeulinepartchap#1}}
|
||||
\newcommand*{\doxyallsectionsfont} [1] {\doxypartfont{#1}%
|
||||
\doxychapterfont{#1}%
|
||||
\doxysectionfont{#1}%
|
||||
\doxysubsectionfont{#1}%
|
||||
\doxysubsubsectionfont{#1}%
|
||||
\doxyparagraphfont{#1}%
|
||||
\doxysubparagraphfont{#1}%
|
||||
\doxyminisecfont{#1}}%
|
||||
% Define caption that is also suitable in a table
|
||||
% for usage with hyperlinks
|
||||
\makeatletter
|
||||
\def\doxyfigcaption{%
|
||||
\H@refstepcounter{figure}%
|
||||
\@dblarg{\@caption{figure}}}
|
||||
|
||||
% for usage without hyperlinks
|
||||
\def\doxyfigcaptionnolink{%
|
||||
\refstepcounter{figure}%
|
||||
\@dblarg{\@caption{figure}}}
|
||||
\makeatother
|
||||
|
||||
% Define alpha enumarative names for counters > 26
|
||||
\makeatletter
|
||||
\def\enumalphalphcnt#1{\expandafter\@enumalphalphcnt\csname c@#1\endcsname}
|
||||
\def\@enumalphalphcnt#1{\alphalph{#1}}
|
||||
\def\enumAlphAlphcnt#1{\expandafter\@enumAlphAlphcnt\csname c@#1\endcsname}
|
||||
\def\@enumAlphAlphcnt#1{\AlphAlph{#1}}
|
||||
\makeatother
|
||||
\AddEnumerateCounter{\enumalphalphcnt}{\@enumalphalphcnt}{aa}
|
||||
\AddEnumerateCounter{\enumAlphAlphcnt}{\@enumAlphAlphcnt}{AA}
|
||||
2178
Doc/latex/etoc_doxygen.sty
Normal file
2178
Doc/latex/etoc_doxygen.sty
Normal file
@@ -0,0 +1,2178 @@
|
||||
%%
|
||||
%% This is file etoc_doxygen.sty
|
||||
%%
|
||||
%% Apart from this header notice and the renaming from etoc to
|
||||
%% etoc_doxygen (also in \ProvidesPackage) it is an identical
|
||||
%% copy of
|
||||
%%
|
||||
%% etoc.sty
|
||||
%%
|
||||
%% at version 1.2b of 2023/07/01.
|
||||
%%
|
||||
%% This file has been provided to Doxygen team courtesy of the
|
||||
%% author for benefit of users having a LaTeX installation not
|
||||
%% yet providing version 1.2a or later of etoc, whose
|
||||
%% deeplevels feature is required.
|
||||
%%
|
||||
%% The original source etoc.dtx (only of the latest version at
|
||||
%% any given time) is available at
|
||||
%%
|
||||
%% https://ctan.org/pkg/etoc
|
||||
%%
|
||||
%% and contains the terms for copying and modification as well
|
||||
%% as author contact information.
|
||||
%%
|
||||
%% In brief any modified versions of this file must be renamed
|
||||
%% with new filenames distinct from etoc.sty.
|
||||
%%
|
||||
%% Package: etoc
|
||||
%% Version: 1.2b
|
||||
%% License: LPPL 1.3c
|
||||
%% Copyright (C) 2012-2023 Jean-Francois B. <user jfbu at github>
|
||||
\NeedsTeXFormat{LaTeX2e}[2003/12/01]
|
||||
\ProvidesPackage{etoc_doxygen}[2023/07/01 v1.2b Completely customisable TOCs (JFB)]
|
||||
\newif\ifEtoc@oldLaTeX
|
||||
\@ifl@t@r\fmtversion{2020/10/01}
|
||||
{}
|
||||
{\Etoc@oldLaTeXtrue
|
||||
\PackageInfo{etoc}{Old LaTeX (\fmtversion) detected!\MessageBreak
|
||||
Since 1.1a (2023/01/14), etoc prefers LaTeX at least\MessageBreak
|
||||
as recent as 2020-10-01, for reasons of the .toc file,\MessageBreak
|
||||
and used to require it (from 1.1a to 1.2).\MessageBreak
|
||||
This etoc (1.2b) does not *require* it, but has not been\MessageBreak
|
||||
tested thoroughly on old LaTeX (especially if document\MessageBreak
|
||||
does not use hyperref) and retrofitting was done only\MessageBreak
|
||||
on basis of author partial remembrances of old context.\MessageBreak
|
||||
Reported}}
|
||||
\RequirePackage{kvoptions}
|
||||
\SetupKeyvalOptions{prefix=Etoc@}
|
||||
\newif\ifEtoc@lof
|
||||
\DeclareVoidOption{lof}{\Etoc@loftrue
|
||||
\PackageInfo{etoc}{Experimental support for \string\locallistoffigures.\MessageBreak
|
||||
Barely tested, use at own risk}%
|
||||
}
|
||||
\newif\ifEtoc@lot
|
||||
\DeclareVoidOption{lot}{\Etoc@lottrue
|
||||
\PackageInfo{etoc}{Experimental support for \string\locallistoftables.\MessageBreak
|
||||
Barely tested, use at own risk}%
|
||||
}
|
||||
\@ifclassloaded{memoir}{
|
||||
\PackageInfo{etoc}
|
||||
{As this is with memoir class, all `...totoc' options\MessageBreak
|
||||
are set true by default. Reported}
|
||||
\DeclareBoolOption[true]{maintoctotoc}
|
||||
\DeclareBoolOption[true]{localtoctotoc}
|
||||
\DeclareBoolOption[true]{localloftotoc}
|
||||
\DeclareBoolOption[true]{locallottotoc}
|
||||
}{
|
||||
\DeclareBoolOption[false]{maintoctotoc}
|
||||
\DeclareBoolOption[false]{localtoctotoc}
|
||||
\DeclareBoolOption[false]{localloftotoc}
|
||||
\DeclareBoolOption[false]{locallottotoc}
|
||||
}
|
||||
\DeclareBoolOption[true]{ouroboros}
|
||||
\DeclareBoolOption[false]{deeplevels}
|
||||
\DeclareDefaultOption{\PackageWarning{etoc}{Option `\CurrentOption' is unknown.}}
|
||||
\ProcessKeyvalOptions*
|
||||
\DisableKeyvalOption[action=error,package=etoc]{etoc}{lof}
|
||||
\DisableKeyvalOption[action=error,package=etoc]{etoc}{lot}
|
||||
\DisableKeyvalOption[action=error,package=etoc]{etoc}{deeplevels}
|
||||
\def\etocsetup#1{\setkeys{etoc}{#1}}
|
||||
\def\etocifmaintoctotoc{\ifEtoc@maintoctotoc
|
||||
\expandafter\@firstoftwo
|
||||
\else
|
||||
\expandafter\@secondoftwo
|
||||
\fi}
|
||||
\def\etociflocaltoctotoc{\ifEtoc@localtoctotoc
|
||||
\expandafter\@firstoftwo
|
||||
\else
|
||||
\expandafter\@secondoftwo
|
||||
\fi}
|
||||
\def\etociflocalloftotoc{\ifEtoc@localloftotoc
|
||||
\expandafter\@firstoftwo
|
||||
\else
|
||||
\expandafter\@secondoftwo
|
||||
\fi}
|
||||
\def\etociflocallottotoc{\ifEtoc@locallottotoc
|
||||
\expandafter\@firstoftwo
|
||||
\else
|
||||
\expandafter\@secondoftwo
|
||||
\fi}
|
||||
\RequirePackage{multicol}
|
||||
\def\etoc@{\etoc@}
|
||||
\long\def\Etoc@gobtoetoc@ #1\etoc@{}
|
||||
\newtoks\Etoc@toctoks
|
||||
\def\Etoc@par{\par}
|
||||
\def\etocinline{\def\Etoc@par{}}
|
||||
\let\etocnopar\etocinline
|
||||
\def\etocdisplay{\def\Etoc@par{\par}}
|
||||
\let\Etoc@global\@empty
|
||||
\def\etocglobaldefs{\let\Etoc@global\global\let\tof@global\global}
|
||||
\def\etoclocaldefs {\let\Etoc@global\@empty\let\tof@global\@empty}
|
||||
\newif\ifEtoc@numbered
|
||||
\newif\ifEtoc@hyperref
|
||||
\newif\ifEtoc@parskip
|
||||
\newif\ifEtoc@tocwithid
|
||||
\newif\ifEtoc@standardlines
|
||||
\newif\ifEtoc@etocstyle
|
||||
\newif\ifEtoc@classstyle
|
||||
\newif\ifEtoc@keeporiginaltoc
|
||||
\newif\ifEtoc@skipprefix
|
||||
\newif\ifEtoc@isfirst
|
||||
\newif\ifEtoc@localtoc
|
||||
\newif\ifEtoc@skipthisone
|
||||
\newif\ifEtoc@stoptoc
|
||||
\newif\ifEtoc@notactive
|
||||
\newif\ifEtoc@mustclosegroup
|
||||
\newif\ifEtoc@isemptytoc
|
||||
\newif\ifEtoc@checksemptiness
|
||||
\def\etocchecksemptiness {\Etoc@checksemptinesstrue }
|
||||
\def\etocdoesnotcheckemptiness {\Etoc@checksemptinessfalse }
|
||||
\newif\ifEtoc@notocifnotoc
|
||||
\def\etocnotocifnotoc {\Etoc@checksemptinesstrue\Etoc@notocifnotoctrue }
|
||||
\newcounter{etoc@tocid}
|
||||
\def\Etoc@tocext{toc}
|
||||
\def\Etoc@lofext{lof}
|
||||
\def\Etoc@lotext{lot}
|
||||
\let\Etoc@currext\Etoc@tocext
|
||||
\def\etocifislocal{\ifEtoc@localtoc\expandafter\@firstoftwo\else
|
||||
\expandafter\@secondoftwo\fi
|
||||
}
|
||||
\def\etocifislocaltoc{\etocifislocal{\ifx\Etoc@currext\Etoc@tocext
|
||||
\expandafter\@firstoftwo\else
|
||||
\expandafter\@secondoftwo\fi}%
|
||||
{\@secondoftwo}%
|
||||
}
|
||||
\def\etocifislocallof{\etocifislocal{\ifx\Etoc@currext\Etoc@lofext
|
||||
\expandafter\@firstoftwo\else
|
||||
\expandafter\@secondoftwo\fi}%
|
||||
{\@secondoftwo}%
|
||||
}
|
||||
\def\etocifislocallot{\etocifislocal{\ifx\Etoc@currext\Etoc@lotext
|
||||
\expandafter\@firstoftwo\else
|
||||
\expandafter\@secondoftwo\fi}%
|
||||
{\@secondoftwo}%
|
||||
}
|
||||
\expandafter\def\csname Etoc@-3@@\endcsname {-\thr@@}
|
||||
\expandafter\def\csname Etoc@-2@@\endcsname {-\tw@}
|
||||
\expandafter\let\csname Etoc@-1@@\endcsname \m@ne
|
||||
\expandafter\let\csname Etoc@0@@\endcsname \z@
|
||||
\expandafter\let\csname Etoc@1@@\endcsname \@ne
|
||||
\expandafter\let\csname Etoc@2@@\endcsname \tw@
|
||||
\expandafter\let\csname Etoc@3@@\endcsname \thr@@
|
||||
\expandafter\chardef\csname Etoc@4@@\endcsname 4
|
||||
\expandafter\chardef\csname Etoc@5@@\endcsname 5
|
||||
\expandafter\chardef\csname Etoc@6@@\endcsname 6
|
||||
\ifEtoc@deeplevels
|
||||
\expandafter\chardef\csname Etoc@7@@\endcsname 7
|
||||
\expandafter\chardef\csname Etoc@8@@\endcsname 8
|
||||
\expandafter\chardef\csname Etoc@9@@\endcsname 9
|
||||
\expandafter\chardef\csname Etoc@10@@\endcsname 10
|
||||
\expandafter\chardef\csname Etoc@11@@\endcsname 11
|
||||
\expandafter\chardef\csname Etoc@12@@\endcsname 12
|
||||
\fi
|
||||
\expandafter\let\expandafter\Etoc@maxlevel
|
||||
\csname Etoc@\ifEtoc@deeplevels12\else6\fi @@\endcsname
|
||||
\edef\etocthemaxlevel{\number\Etoc@maxlevel}
|
||||
\@ifclassloaded{memoir}{\def\Etoc@minf{-\thr@@}}{\def\Etoc@minf{-\tw@}}
|
||||
\let\Etoc@none@@ \Etoc@minf
|
||||
\expandafter\let\expandafter\Etoc@all@@
|
||||
\csname Etoc@\ifEtoc@deeplevels11\else5\fi @@\endcsname
|
||||
\let\Etoc@dolevels\@empty
|
||||
\def\Etoc@newlevel #1{\expandafter\def\expandafter\Etoc@dolevels\expandafter
|
||||
{\Etoc@dolevels\Etoc@do{#1}}}
|
||||
\ifdefined\expanded
|
||||
\def\etocsetlevel#1#2{\expanded{\noexpand\etoc@setlevel{#1}{#2}}}%
|
||||
\else
|
||||
\def\etocsetlevel#1#2{{\edef\Etoc@tmp{\noexpand\etoc@setlevel{#1}{#2}}\expandafter}\Etoc@tmp}%
|
||||
\fi
|
||||
\def\etoc@setlevel#1#2{%
|
||||
\edef\Etoc@tmp{\the\numexpr#2}%
|
||||
\if1\ifnum\Etoc@tmp>\Etoc@maxlevel0\fi\unless\ifnum\Etoc@minf<\Etoc@tmp;\fi1%
|
||||
\ifEtoc@deeplevels
|
||||
\in@{.#1,}{.none,.all,.figure,.table,.-3,.-2,.-1,.0,.1,.2,.3,.4,.5,.6,%
|
||||
.7,.8,.9,.10,.11,.12,}%
|
||||
\else
|
||||
\in@{.#1,}{.none,.all,.figure,.table,.-3,.-2,.-1,.0,.1,.2,.3,.4,.5,.6,}%
|
||||
\fi
|
||||
\ifin@\else\if\@car#1\@nil @\in@true\fi\fi
|
||||
\ifin@
|
||||
\PackageWarning{etoc}
|
||||
{Sorry, but `#1' is forbidden as level name.\MessageBreak
|
||||
\if\@car#1\@nil @%
|
||||
(because of the @ as first character)\MessageBreak\fi
|
||||
Reported}%
|
||||
\else
|
||||
\etocifunknownlevelTF{#1}{\Etoc@newlevel{#1}}{}%
|
||||
\expandafter\let\csname Etoc@#1@@\expandafter\endcsname
|
||||
\csname Etoc@\Etoc@tmp @@\endcsname
|
||||
\expandafter\edef\csname Etoc@@#1@@\endcsname
|
||||
{\expandafter\noexpand\csname Etoc@#1@@\endcsname}%
|
||||
\expandafter\edef\csname toclevel@@#1\endcsname
|
||||
{\expandafter\noexpand\csname toclevel@#1\endcsname}%
|
||||
\fi
|
||||
\else
|
||||
\PackageWarning{etoc}
|
||||
{Argument `\detokenize{#2}' of \string\etocsetlevel\space should
|
||||
represent one of\MessageBreak
|
||||
\ifnum\Etoc@minf=-\thr@@-2, \fi-1, 0, 1, 2, \ifEtoc@deeplevels ...\else3, 4\fi,
|
||||
\the\numexpr\Etoc@maxlevel-1, or \number\Etoc@maxlevel\space
|
||||
but evaluates to \Etoc@tmp.\MessageBreak
|
||||
The level of `#1' will be set to \number\Etoc@maxlevel.\MessageBreak
|
||||
Tables of contents will ignore `#1' as long\MessageBreak
|
||||
as its level is \number\Etoc@maxlevel\space (=\string\etocthemaxlevel).%
|
||||
\MessageBreak
|
||||
Reported}%
|
||||
\etocifunknownlevelTF{#1}{\Etoc@newlevel{#1}}{}%
|
||||
\expandafter\let\csname Etoc@#1@@\endcsname\Etoc@maxlevel
|
||||
\fi
|
||||
}
|
||||
\def\etoclevel#1{\csname Etoc@#1@@\endcsname}
|
||||
\def\etocthelevel#1{\number\csname Etoc@#1@@\endcsname}
|
||||
\def\etocifunknownlevelTF#1{\@ifundefined{Etoc@#1@@}}
|
||||
\@ifclassloaded{memoir}{\etocsetlevel{book}{-2}}{}
|
||||
\etocsetlevel{part}{-1}
|
||||
\etocsetlevel{chapter}{0}
|
||||
\etocsetlevel{section}{1}
|
||||
\etocsetlevel{subsection}{2}
|
||||
\etocsetlevel{subsubsection}{3}
|
||||
\etocsetlevel{paragraph}{4}
|
||||
\etocsetlevel{subparagraph}{5}
|
||||
\ifdefined\c@chapter
|
||||
\etocsetlevel{appendix}{0}
|
||||
\else
|
||||
\etocsetlevel{appendix}{1}
|
||||
\fi
|
||||
\def\Etoc@do#1{\@namedef{l@@#1}{\csname l@#1\endcsname}}
|
||||
\Etoc@dolevels
|
||||
\let\Etoc@figure@@\Etoc@maxlevel
|
||||
\let\Etoc@table@@ \Etoc@maxlevel
|
||||
\let\Etoc@gobblethreeorfour\@gobblefour
|
||||
\ifdefined\@gobblethree
|
||||
\let\Etoc@gobblethree\@gobblethree
|
||||
\else
|
||||
\long\def\Etoc@gobblethree#1#2#3{}%
|
||||
\fi
|
||||
\AtBeginDocument{%
|
||||
\@ifpackageloaded{parskip}{\Etoc@parskiptrue}{}%
|
||||
\@ifpackageloaded{hyperref}
|
||||
{\Etoc@hyperreftrue}
|
||||
{\ifEtoc@oldLaTeX
|
||||
\let\Etoc@gobblethreeorfour\Etoc@gobblethree
|
||||
\let\Etoc@etoccontentsline@fourargs\Etoc@etoccontentsline@
|
||||
\long\def\Etoc@etoccontentsline@#1#2#3{%
|
||||
\Etoc@etoccontentsline@fourargs{#1}{#2}{#3}{}%
|
||||
}%
|
||||
\fi
|
||||
}%
|
||||
}
|
||||
\def\etocskipfirstprefix {\global\Etoc@skipprefixtrue }
|
||||
\def\Etoc@updatestackofends#1\etoc@{\gdef\Etoc@stackofends{#1}}
|
||||
\def\Etoc@stackofends{{-3}{}}
|
||||
\def\Etoc@doendsandbegin{%
|
||||
\expandafter\Etoc@traversestackofends\Etoc@stackofends\etoc@
|
||||
}
|
||||
\def\Etoc@traversestackofends#1{%
|
||||
\ifnum#1>\Etoc@level
|
||||
\csname Etoc@end@#1\endcsname
|
||||
\expandafter\Etoc@traversestackofends
|
||||
\else
|
||||
\Etoc@traversestackofends@done{#1}%
|
||||
\fi
|
||||
}
|
||||
\def\Etoc@traversestackofends@done#1#2{#2%
|
||||
\ifnum#1<\Etoc@level
|
||||
\csname Etoc@begin@\the\numexpr\Etoc@level\endcsname
|
||||
\Etoc@global\Etoc@isfirsttrue
|
||||
\edef\Etoc@tmp{{\the\numexpr\Etoc@level}}%
|
||||
\else
|
||||
\Etoc@global\Etoc@isfirstfalse
|
||||
\let\Etoc@tmp\@empty
|
||||
\fi
|
||||
\expandafter\Etoc@updatestackofends\Etoc@tmp{#1}%
|
||||
}
|
||||
\def\Etoc@etoccontentsline #1{%
|
||||
\let\Etoc@next\Etoc@gobblethreeorfour
|
||||
\ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel
|
||||
\else
|
||||
\Etoc@skipthisonefalse
|
||||
\global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname
|
||||
\if @\@car#1\@nil\else\global\let\Etoc@virtualtop\Etoc@level\fi
|
||||
\ifEtoc@localtoc
|
||||
\ifEtoc@stoptoc
|
||||
\Etoc@skipthisonetrue
|
||||
\else
|
||||
\ifEtoc@notactive
|
||||
\Etoc@skipthisonetrue
|
||||
\else
|
||||
\unless\ifnum\Etoc@level>\etoclocaltop
|
||||
\Etoc@skipthisonetrue
|
||||
\global\Etoc@stoptoctrue
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\ifEtoc@skipthisone
|
||||
\else
|
||||
\unless\ifnum\Etoc@level>\c@tocdepth
|
||||
\ifEtoc@standardlines
|
||||
\let\Etoc@next\Etoc@savedcontentsline
|
||||
\else
|
||||
\let\Etoc@next\Etoc@etoccontentsline@
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\Etoc@next{#1}%
|
||||
}
|
||||
\def\Etoc@etoccontentsline@ #1#2#3#4{%
|
||||
\Etoc@doendsandbegin
|
||||
\Etoc@global\edef\Etoc@prefix {\expandafter\noexpand
|
||||
\csname Etoc@prefix@\the\numexpr\Etoc@level\endcsname }%
|
||||
\Etoc@global\edef\Etoc@contents{\expandafter\noexpand
|
||||
\csname Etoc@contents@\the\numexpr\Etoc@level\endcsname }%
|
||||
\ifEtoc@skipprefix \Etoc@global\def\Etoc@prefix{\@empty}\fi
|
||||
\global\Etoc@skipprefixfalse
|
||||
\Etoc@lxyz{#2}{#3}{#4}%
|
||||
\Etoc@prefix
|
||||
\Etoc@contents
|
||||
}
|
||||
\def\Etoc@lxyz #1#2#3{%
|
||||
\ifEtoc@hyperref
|
||||
\Etoc@global\def\etocthelink##1{\hyperlink{#3}{##1}}%
|
||||
\else
|
||||
\Etoc@global\let\etocthelink\@firstofone
|
||||
\fi
|
||||
\Etoc@global\def\etocthepage {#2}%
|
||||
\ifEtoc@hyperref
|
||||
\ifx\etocthepage\@empty
|
||||
\Etoc@global\let\etocthelinkedpage\@empty
|
||||
\else
|
||||
\Etoc@global\def\etocthelinkedpage{\hyperlink {#3}{#2}}%
|
||||
\fi
|
||||
\else
|
||||
\Etoc@global\let\etocthelinkedpage\etocthepage
|
||||
\fi
|
||||
\Etoc@global\def\etocthename{#1}%
|
||||
\futurelet\Etoc@getnb@token\Etoc@@getnb #1\hspace\etoc@
|
||||
\ifEtoc@hyperref
|
||||
\def\Etoc@tmp##1##2{\Etoc@global\def##2{\hyperlink{#3}{##1}}}%
|
||||
\expandafter\Etoc@tmp\expandafter{\etocthename}\etocthelinkedname
|
||||
\ifEtoc@numbered
|
||||
\expandafter\Etoc@tmp\expandafter{\etocthenumber}\etocthelinkednumber
|
||||
\else
|
||||
\Etoc@global\let\etocthelinkednumber\@empty
|
||||
\fi
|
||||
\else
|
||||
\Etoc@global\let\etocthelinkedname \etocthename
|
||||
\Etoc@global\let\etocthelinkednumber\etocthenumber
|
||||
\fi
|
||||
\Etoc@global\expandafter\let\csname etoclink \endcsname \etocthelink
|
||||
\Etoc@global\expandafter\let\csname etocname \endcsname \etocthename
|
||||
\Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthenumber
|
||||
\Etoc@global\expandafter\let\csname etocpage \endcsname \etocthepage
|
||||
\ifEtoc@hyperref
|
||||
\Etoc@lxyz@linktoc
|
||||
\fi
|
||||
}
|
||||
\def\Etoc@lxyz@linktoc{%
|
||||
\ifcase\Hy@linktoc
|
||||
\or
|
||||
\Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname
|
||||
\Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber
|
||||
\or % page
|
||||
\Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage
|
||||
\else % all
|
||||
\Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname
|
||||
\Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber
|
||||
\Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage
|
||||
\fi
|
||||
}
|
||||
\def\Etoc@@getnb {%
|
||||
\let\Etoc@next\Etoc@getnb
|
||||
\ifx\Etoc@getnb@token\@sptoken\let\Etoc@next\Etoc@getnb@nonbr\fi
|
||||
\ifx\Etoc@getnb@token\bgroup \let\Etoc@next\Etoc@getnb@nonbr\fi
|
||||
\Etoc@next
|
||||
}
|
||||
\def\Etoc@getnb #1{%
|
||||
\in@{#1}{\numberline\chapternumberline\partnumberline\booknumberline}%
|
||||
\ifin@
|
||||
\let\Etoc@next\Etoc@getnb@nmbrd
|
||||
\else
|
||||
\ifnum\Etoc@level=\m@ne
|
||||
\let\Etoc@next\Etoc@@getit
|
||||
\else
|
||||
\let\Etoc@next\Etoc@getnb@nonbr
|
||||
\fi
|
||||
\in@{#1}{\nonumberline}%
|
||||
\ifin@
|
||||
\let\Etoc@next\Etoc@getnb@nonumberline
|
||||
\fi
|
||||
\fi
|
||||
\Etoc@next #1%
|
||||
}
|
||||
\def\Etoc@getnb@nmbrd #1#2{%
|
||||
\Etoc@global\Etoc@numberedtrue
|
||||
\Etoc@global\def\etocthenumber {#2}%
|
||||
\Etoc@getnb@nmbrd@getname\@empty
|
||||
}%
|
||||
\def\Etoc@getnb@nmbrd@getname #1\hspace\etoc@ {%
|
||||
\Etoc@global\expandafter\def\expandafter\etocthename\expandafter{#1}%
|
||||
}
|
||||
\def\Etoc@getnb@nonbr #1\etoc@ {%
|
||||
\Etoc@global\Etoc@numberedfalse
|
||||
\Etoc@global\let\etocthenumber \@empty
|
||||
}
|
||||
\def\Etoc@getnb@nonumberline #1\hspace\etoc@ {%
|
||||
\Etoc@global\Etoc@numberedfalse
|
||||
\Etoc@global\let\etocthenumber \@empty
|
||||
\Etoc@global\expandafter\def\expandafter\etocthename\expandafter{\@gobble#1}%
|
||||
}
|
||||
\def\Etoc@@getit #1\hspace#2{%
|
||||
\ifx\etoc@#2%
|
||||
\Etoc@global\Etoc@numberedfalse
|
||||
\Etoc@global\let\etocthenumber \@empty
|
||||
\else
|
||||
\Etoc@global\Etoc@numberedtrue
|
||||
\Etoc@global\def\etocthenumber {#1}%
|
||||
\expandafter\Etoc@getit@getname \expandafter\@empty
|
||||
\fi
|
||||
}
|
||||
\def\Etoc@getit@getname #1\hspace\etoc@ {%
|
||||
\Etoc@global\expandafter\def\expandafter\etocthename\expandafter{#1}%
|
||||
}
|
||||
\let\etocthename \@empty
|
||||
\let\etocthenumber \@empty
|
||||
\let\etocthepage \@empty
|
||||
\let\etocthelinkedname \@empty
|
||||
\let\etocthelinkednumber \@empty
|
||||
\let\etocthelinkedpage \@empty
|
||||
\let\etocthelink \@firstofone
|
||||
\DeclareRobustCommand*{\etocname} {}
|
||||
\DeclareRobustCommand*{\etocnumber}{}
|
||||
\DeclareRobustCommand*{\etocpage} {}
|
||||
\DeclareRobustCommand*{\etoclink} {\@firstofone}
|
||||
\DeclareRobustCommand*{\etocifnumbered}
|
||||
{\ifEtoc@numbered\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
|
||||
\expandafter\let\expandafter\etocxifnumbered\csname etocifnumbered \endcsname
|
||||
\DeclareRobustCommand*{\etociffirst}
|
||||
{\ifEtoc@isfirst\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
|
||||
\expandafter\let\expandafter\etocxiffirst\csname etociffirst \endcsname
|
||||
\def\Etoc@readtoc {%
|
||||
\ifeof \Etoc@tf
|
||||
\else
|
||||
\read \Etoc@tf to \Etoc@buffer
|
||||
\Etoc@toctoks=\expandafter\expandafter\expandafter
|
||||
{\expandafter\the\expandafter\Etoc@toctoks\Etoc@buffer}%
|
||||
\expandafter\Etoc@readtoc
|
||||
\fi
|
||||
}
|
||||
\Etoc@toctoks {}% (superfluous, but for clarity)
|
||||
\AtBeginDocument{\IfFileExists{\jobname.toc}
|
||||
{{\endlinechar=\m@ne
|
||||
\makeatletter
|
||||
\newread\Etoc@tf
|
||||
\openin\Etoc@tf\@filef@und
|
||||
\Etoc@readtoc
|
||||
\global\Etoc@toctoks=\expandafter{\the\Etoc@toctoks}%
|
||||
\closein\Etoc@tf}}
|
||||
{\typeout{No file \jobname.toc.}}}
|
||||
\def\Etoc@openouttoc{%
|
||||
\ifEtoc@hyperref
|
||||
\ifx\hyper@last\@undefined
|
||||
\IfFileExists{\jobname .toc}
|
||||
{\Hy@WarningNoLine
|
||||
{old toc file detected; run LaTeX again (cheers from `etoc')}%
|
||||
\global\Etoc@toctoks={}%
|
||||
}
|
||||
{}%
|
||||
\fi
|
||||
\fi
|
||||
\if@filesw
|
||||
\newwrite \tf@toc
|
||||
\immediate \openout \tf@toc \jobname .toc\relax
|
||||
\fi
|
||||
\global\let\Etoc@openouttoc\empty
|
||||
}
|
||||
\def\Etoc@toctoc{%
|
||||
\gdef\Etoc@stackofends{{-3}{}}%
|
||||
\global\let\Etoc@level\Etoc@minf
|
||||
\global\let\Etoc@virtualtop\Etoc@minf
|
||||
\the\Etoc@toctoks
|
||||
\ifEtoc@notactive
|
||||
\else
|
||||
\gdef\Etoc@level{-\thr@@}%
|
||||
\Etoc@doendsandbegin
|
||||
\fi
|
||||
}
|
||||
\def\Etoc@@startlocaltoc#1#2{%
|
||||
\ifEtoc@localtoc
|
||||
\ifnum #1=#2\relax
|
||||
\global\let\etoclocaltop\Etoc@virtualtop
|
||||
\Etoc@@startlocaltochook
|
||||
\etoclocaltableofcontentshook
|
||||
\ifEtoc@etocstyle
|
||||
\etocetoclocaltocmaketitle
|
||||
\fi
|
||||
\ifx\Etoc@aftertitlehook\@empty
|
||||
\else
|
||||
\ifEtoc@localtoctotoc
|
||||
\ifEtoc@ouroboros
|
||||
\else
|
||||
\let\Etoc@tmp\contentsline
|
||||
\def\contentsline{\let\contentsline\Etoc@tmp\Etoc@gobblethreeorfour}%
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\global\Etoc@notactivefalse
|
||||
\fi
|
||||
\fi
|
||||
}
|
||||
\let\etoc@startlocaltoc\@gobble
|
||||
\let\Etoc@@startlocaltoc@toc\Etoc@@startlocaltoc
|
||||
\let\Etoc@@startlocaltochook\@empty
|
||||
\unless\ifEtoc@deeplevels
|
||||
\def\etocdivisionnameatlevel#1{%
|
||||
\ifcase\numexpr#1\relax
|
||||
\ifdefined\c@chapter chapter\else section\fi%
|
||||
\or section%
|
||||
\or subsection%
|
||||
\or subsubsection%
|
||||
\or paragraph%
|
||||
\or subparagraph%
|
||||
\or empty%
|
||||
\else\ifnum\numexpr#1<\m@ne
|
||||
book%
|
||||
\else
|
||||
part%
|
||||
\fi
|
||||
\fi
|
||||
}
|
||||
\else
|
||||
\def\etocdivisionnameatlevel#1{%
|
||||
\ifcase\numexpr#1\relax
|
||||
\ifdefined\c@chapter chapter\else section\fi%
|
||||
\or section%
|
||||
\or subsection%
|
||||
\or subsubsection%
|
||||
\or subsubsubsection%
|
||||
\or subsubsubsubsection%
|
||||
\or subsubsubsubsubsection%
|
||||
\or subsubsubsubsubsubsection%
|
||||
\or paragraph%
|
||||
\or subparagraph%
|
||||
\else\ifnum\numexpr#1>\z@
|
||||
empty%
|
||||
\else\ifnum\numexpr#1=\m@ne
|
||||
part%
|
||||
\else
|
||||
book%
|
||||
\fi\fi
|
||||
\fi
|
||||
}
|
||||
\fi
|
||||
\def\etoclocalheadtotoc#1#2{\addcontentsline{toc}{@#1}{#2}}
|
||||
\def\etocglobalheadtotoc{\addcontentsline{toc}}
|
||||
\providecommand*\UseName{\@nameuse}
|
||||
\def\etocetoclocaltocmaketitle{%
|
||||
\UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\localcontentsname}%
|
||||
\if@noskipsec\leavevmode\par\fi
|
||||
\etociflocaltoctotoc
|
||||
{\etocifisstarred
|
||||
{}% star variant, do not add to toc
|
||||
{\etoclocalheadtotoc
|
||||
{\etocdivisionnameatlevel{\etoclocaltop+1}}%
|
||||
{\localcontentsname}%
|
||||
}%
|
||||
}%
|
||||
{}%
|
||||
}%
|
||||
\def\localcontentsname {\contentsname}%
|
||||
\let\etoclocaltableofcontentshook\@empty
|
||||
\if1\ifEtoc@lof0\fi\ifEtoc@lot0\fi1%
|
||||
\else
|
||||
\AtBeginDocument{%
|
||||
\let\Etoc@originaladdcontentsline\addcontentsline
|
||||
\def\addcontentsline{\Etoc@hackedaddcontentsline}%
|
||||
}%
|
||||
\fi
|
||||
\ifEtoc@lof
|
||||
\ifEtoc@lot
|
||||
\def\Etoc@hackedaddcontentsline#1{%
|
||||
\expanded{\noexpand\in@{.#1,}}{.lof,.lot,}%
|
||||
\ifin@\expandafter\Etoc@hackedaddcontentsline@i
|
||||
\else\expandafter\Etoc@originaladdcontentsline
|
||||
\fi {#1}}
|
||||
\else
|
||||
\def\Etoc@hackedaddcontentsline#1{%
|
||||
\expanded{\noexpand\in@{.#1,}}{.lof,}%
|
||||
\ifin@\expandafter\Etoc@hackedaddcontentsline@i
|
||||
\else\expandafter\Etoc@originaladdcontentsline
|
||||
\fi {#1}}
|
||||
\fi
|
||||
\else
|
||||
\def\Etoc@hackedaddcontentsline#1{%
|
||||
\expanded{\noexpand\in@{.#1,}}{.lot,}%
|
||||
\ifin@\expandafter\Etoc@hackedaddcontentsline@i
|
||||
\else\expandafter\Etoc@originaladdcontentsline
|
||||
\fi {#1}}
|
||||
\fi
|
||||
\def\Etoc@hackedaddcontentsline@i#1#2#3{%
|
||||
\expanded{\noexpand\in@{.#1;#2,}}{.lof;figure,.lot;table,}%
|
||||
\ifin@
|
||||
\addtocontents {toc}{%
|
||||
\protect\contentsline{#2}{#3}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}%
|
||||
\ifdefined\protected@file@percent\protected@file@percent\fi
|
||||
}%
|
||||
\fi
|
||||
\Etoc@originaladdcontentsline{#1}{#2}{#3}%
|
||||
}
|
||||
\unless\ifdefined\expanded
|
||||
\def\Etoc@hackedaddcontentsline#1{%
|
||||
{\edef\Etoc@tmp{\noexpand\in@{.#1,}{\ifEtoc@lof.lof,\fi\ifEtoc@lot.lot,\fi}}\expandafter}%
|
||||
\Etoc@tmp
|
||||
\ifin@\expandafter\Etoc@hackedaddcontentsline@i
|
||||
\else\expandafter\Etoc@originaladdcontentsline
|
||||
\fi {#1}%
|
||||
}
|
||||
\def\Etoc@hackedaddcontentsline@i#1#2#3{%
|
||||
{\edef\Etoc@tmp{\noexpand\in@{.#1;#2,}}\expandafter}%
|
||||
\Etoc@tmp{.lof;figure,.lot;table,}%
|
||||
\ifin@
|
||||
\addtocontents {toc}{%
|
||||
\protect\contentsline{#2}{#3}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}%
|
||||
\ifdefined\protected@file@percent\protected@file@percent\fi
|
||||
}%
|
||||
\fi
|
||||
\Etoc@originaladdcontentsline{#1}{#2}{#3}%
|
||||
}
|
||||
\fi
|
||||
\def\Etoc@@startlocallistof#1#2#3{%
|
||||
\ifEtoc@localtoc
|
||||
\ifnum #2=#3\relax
|
||||
\global\let\etoclocaltop\Etoc@virtualtop
|
||||
\global\Etoc@notactivefalse
|
||||
\Etoc@@startlocaltochook
|
||||
\csname etoclocallistof#1shook\endcsname
|
||||
\ifEtoc@etocstyle
|
||||
\csname etocetoclistof#1smaketitle\endcsname
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
}
|
||||
\def\Etoc@@startlocallistof@setlevels#1{%
|
||||
\ifnum\etoclocaltop<\z@
|
||||
\expandafter\let\csname Etoc@#1@@\endcsname\@ne
|
||||
\else
|
||||
\expandafter\let\csname Etoc@#1@@\expandafter\endcsname
|
||||
\csname Etoc@\the\numexpr\etoclocaltop+\@ne @@\endcsname
|
||||
\fi
|
||||
\def\Etoc@do##1{%
|
||||
\ifnum\etoclevel{##1}>\etoclocaltop
|
||||
\expandafter\let\csname Etoc@##1@@\endcsname\Etoc@maxlevel
|
||||
\fi}%
|
||||
\Etoc@dolevels
|
||||
}
|
||||
\def\etoclocallistoffigureshook{\etocstandardlines}
|
||||
\def\etoclocallistoftableshook {\etocstandardlines}
|
||||
\def\locallistfigurename{\listfigurename}
|
||||
\def\locallisttablename {\listtablename}
|
||||
\def\etocetoclistoffiguresmaketitle{%
|
||||
\UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\locallistfigurename}%
|
||||
\ifnum\etoclocaltop>\tw@\mbox{}\par\fi
|
||||
\etociflocalloftotoc
|
||||
{\etocifisstarred
|
||||
{}% star variant, do not add to toc
|
||||
{\etoclocalheadtotoc
|
||||
{\etocdivisionnameatlevel{\etoclocaltop+1}}%
|
||||
{\locallistfigurename}%
|
||||
}%
|
||||
}%
|
||||
{}%
|
||||
}%
|
||||
\def\etocetoclistoftablesmaketitle{%
|
||||
\UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\locallisttablename}%
|
||||
\ifnum\etoclocaltop>\tw@\mbox{}\par\fi
|
||||
\etociflocallottotoc
|
||||
{\etocifisstarred
|
||||
{}% star variant, do not add to toc
|
||||
{\etoclocalheadtotoc
|
||||
{\etocdivisionnameatlevel{\etoclocaltop+1}}%
|
||||
{\locallisttablename}%
|
||||
}%
|
||||
}%
|
||||
{}%
|
||||
}%
|
||||
\let\Etoc@listofreset\@empty
|
||||
\ifEtoc@lof
|
||||
\def\locallistoffigures{%
|
||||
\def\Etoc@listofreset{%
|
||||
\let\Etoc@currext\Etoc@tocext
|
||||
\let\Etoc@@startlocaltoc\Etoc@@startlocaltoc@toc
|
||||
\let\Etoc@@startlocaltochook\@empty
|
||||
\let\Etoc@listofreset\@empty
|
||||
\let\Etoc@listofhook\@empty
|
||||
}%
|
||||
\let\Etoc@currext\Etoc@lofext
|
||||
\def\Etoc@@startlocaltoc{\Etoc@@startlocallistof{figure}}%
|
||||
\def\Etoc@@startlocaltochook{\Etoc@@startlocallistof@setlevels{figure}}%
|
||||
\def\Etoc@listofhook{%
|
||||
\def\Etoc@do####1{%
|
||||
\expandafter\let\csname Etoc@@####1@@\endcsname\Etoc@maxlevel
|
||||
}%
|
||||
\Etoc@dolevels
|
||||
}%
|
||||
\localtableofcontents
|
||||
}
|
||||
\else
|
||||
\def\locallistoffigures{%
|
||||
\PackageError{etoc}{%
|
||||
\string\locallistoffigures \on@line\space but\MessageBreak
|
||||
package was loaded without `lof' option}%
|
||||
{Try again with \string\usepackage[lof]{etoc}}%
|
||||
}
|
||||
\fi
|
||||
\ifEtoc@lot
|
||||
\def\locallistoftables{%
|
||||
\def\Etoc@listofreset{%
|
||||
\let\Etoc@currext\Etoc@tocext
|
||||
\let\Etoc@@startlocaltoc\Etoc@@startlocaltoc@toc
|
||||
\let\Etoc@@startlocaltochook\@empty
|
||||
\let\Etoc@listofreset\@empty
|
||||
\let\Etoc@listofhook\@empty
|
||||
}%
|
||||
\let\Etoc@currext\Etoc@lotext
|
||||
\def\Etoc@@startlocaltoc{\Etoc@@startlocallistof{table}}%
|
||||
\def\Etoc@@startlocaltochook{\Etoc@@startlocallistof@setlevels{table}}%
|
||||
\def\Etoc@listofhook{%
|
||||
\def\Etoc@do####1{%
|
||||
\expandafter\let\csname Etoc@@####1@@\endcsname\Etoc@maxlevel
|
||||
}%
|
||||
\Etoc@dolevels
|
||||
}%
|
||||
\localtableofcontents
|
||||
}
|
||||
\else
|
||||
\def\locallistoftables{%
|
||||
\PackageError{etoc}{%
|
||||
\string\locallistoftable \on@line\space but\MessageBreak
|
||||
package was loaded without `lot' option}%
|
||||
{Try again with \string\usepackage[lot]{etoc}}%
|
||||
}
|
||||
\fi
|
||||
\def\Etoc@checkifempty {%
|
||||
\global\Etoc@isemptytoctrue
|
||||
\global\Etoc@stoptocfalse
|
||||
\global\let\Etoc@level\Etoc@minf
|
||||
\global\let\Etoc@virtualtop\Etoc@minf
|
||||
\gdef\Etoc@stackofends{{-3}{}}%
|
||||
\begingroup
|
||||
\ifEtoc@localtoc
|
||||
\def\etoc@startlocaltoc##1{%
|
||||
\ifnum##1=\Etoc@tocid\relax
|
||||
\global\let\etoclocaltop\Etoc@virtualtop
|
||||
\Etoc@@startlocaltochook
|
||||
\global\Etoc@notactivefalse
|
||||
\fi
|
||||
}%
|
||||
\let\contentsline\Etoc@testingcontentslinelocal
|
||||
\else
|
||||
\let\contentsline\Etoc@testingcontentsline
|
||||
\fi
|
||||
\Etoc@storetocdepth
|
||||
\let\Etoc@setlocaltop@doendsandbegin\@empty
|
||||
\the\Etoc@toctoks
|
||||
\Etoc@restoretocdepth
|
||||
\endgroup
|
||||
}
|
||||
\DeclareRobustCommand*\etocifwasempty
|
||||
{\ifEtoc@isemptytoc\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi }
|
||||
\expandafter\let\expandafter\etocxifwasempty\csname etocifwasempty \endcsname
|
||||
\def\Etoc@testingcontentslinelocal #1{%
|
||||
\ifEtoc@stoptoc
|
||||
\else
|
||||
\ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel
|
||||
\else
|
||||
\global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname
|
||||
\if @\@car#1\@nil\else\global\let\Etoc@virtualtop\Etoc@level\fi
|
||||
\ifEtoc@notactive
|
||||
\else
|
||||
\ifnum\Etoc@level>\etoclocaltop
|
||||
\unless\ifnum\Etoc@level>\c@tocdepth
|
||||
\global\Etoc@isemptytocfalse
|
||||
\global\Etoc@stoptoctrue
|
||||
\fi
|
||||
\else
|
||||
\global\Etoc@stoptoctrue
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\Etoc@gobblethreeorfour{}%
|
||||
}
|
||||
\def\Etoc@testingcontentsline #1{%
|
||||
\ifEtoc@stoptoc
|
||||
\else
|
||||
\ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel
|
||||
\else
|
||||
\unless\ifnum\csname Etoc@#1@@\endcsname>\c@tocdepth
|
||||
\global\Etoc@isemptytocfalse
|
||||
\global\Etoc@stoptoctrue
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\Etoc@gobblethreeorfour{}%
|
||||
}
|
||||
\def\Etoc@localtableofcontents#1{%
|
||||
\gdef\etoclocaltop{-\@m}%
|
||||
\Etoc@localtoctrue
|
||||
\global\Etoc@isemptytocfalse
|
||||
\edef\Etoc@tocid{#1}%
|
||||
\ifnum\Etoc@tocid<\@ne
|
||||
\setbox0\hbox{\ref{Unknown toc ref \@secondoftwo#1. \space Rerun LaTeX}}%
|
||||
\global\Etoc@stoptoctrue
|
||||
\gdef\etoclocaltop{-\thr@@}%
|
||||
\Etoc@tableofcontents
|
||||
\expandafter\Etoc@gobtoetoc@
|
||||
\fi
|
||||
\global\Etoc@notactivetrue
|
||||
\ifEtoc@checksemptiness
|
||||
\Etoc@checkifempty
|
||||
\fi
|
||||
\ifEtoc@isemptytoc
|
||||
\ifEtoc@notactive
|
||||
\setbox0\hbox{\ref{Unknown toc ID \number\Etoc@tocid. \space Rerun LaTeX}}%
|
||||
\global\Etoc@isemptytocfalse
|
||||
\global\Etoc@stoptoctrue
|
||||
\gdef\etoclocaltop{-\thr@@}%
|
||||
\Etoc@tableofcontents
|
||||
\expandafter\expandafter\expandafter\Etoc@gobtoetoc@
|
||||
\fi
|
||||
\else
|
||||
\global\Etoc@stoptocfalse
|
||||
\global\Etoc@notactivetrue
|
||||
\edef\etoc@startlocaltoc##1%
|
||||
{\noexpand\Etoc@@startlocaltoc{##1}{\Etoc@tocid}}%
|
||||
\Etoc@tableofcontents
|
||||
\fi
|
||||
\@gobble\etoc@
|
||||
\endgroup\ifEtoc@mustclosegroup\endgroup\fi
|
||||
\Etoc@tocdepthreset
|
||||
\Etoc@listofreset
|
||||
\etocaftertochook
|
||||
}% \Etoc@localtableofcontents
|
||||
\def\Etoc@getref #1{%
|
||||
\@ifundefined{r@#1}
|
||||
{0}
|
||||
{\expandafter\Etoc@getref@i\romannumeral-`0%
|
||||
\expandafter\expandafter\expandafter
|
||||
\@car\csname r@#1\endcsname0\@nil\@etoc
|
||||
}%
|
||||
}
|
||||
\def\Etoc@getref@i#1#2\@etoc{\ifnum9<1\string#1 #1#2\else 0\fi}
|
||||
\def\Etoc@ref#1{\Etoc@localtableofcontents{\Etoc@getref{#1}}}
|
||||
\def\Etoc@label#1{\label{#1}\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents}
|
||||
\@firstofone{\def\Etoc@again} {\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents}
|
||||
\def\Etoc@dothis #1#2\etoc@ {\fi #1}
|
||||
\def\Etoc@t@bleofcontents{%
|
||||
\gdef\etoclocaltop{-\@M}%
|
||||
\ifx\Etoc@nexttoken\label\Etoc@dothis{\expandafter\Etoc@label\@gobble}\fi
|
||||
\ifx\Etoc@nexttoken\@sptoken\Etoc@dothis{\Etoc@again}\fi
|
||||
\ifx\Etoc@nexttoken\ref\Etoc@dothis{\expandafter\Etoc@ref\@gobble}\fi
|
||||
\ifEtoc@tocwithid\Etoc@dothis{\Etoc@localtableofcontents{\c@etoc@tocid}}\fi
|
||||
\global\Etoc@isemptytocfalse
|
||||
\ifEtoc@checksemptiness\Etoc@checkifempty\fi
|
||||
\ifEtoc@isemptytoc
|
||||
\ifEtoc@notocifnotoc
|
||||
\expandafter\expandafter\expandafter\@gobble
|
||||
\fi
|
||||
\fi
|
||||
\Etoc@tableofcontents
|
||||
\endgroup
|
||||
\ifEtoc@mustclosegroup\endgroup\fi
|
||||
\Etoc@tocdepthreset
|
||||
\Etoc@listofreset
|
||||
\etocaftertochook
|
||||
\@gobble\etoc@
|
||||
}% \Etoc@t@bleofcontents
|
||||
\def\Etoc@table@fcontents{%
|
||||
\refstepcounter{etoc@tocid}%
|
||||
\Etoc@tocwithidfalse
|
||||
\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents
|
||||
}
|
||||
\def\Etoc@localtable@fcontents{%
|
||||
\refstepcounter{etoc@tocid}%
|
||||
\addtocontents{toc}{\string\etoc@startlocaltoc{\the\c@etoc@tocid}}%
|
||||
\Etoc@tocwithidtrue
|
||||
\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents
|
||||
}
|
||||
\def\etoctableofcontents{%
|
||||
\Etoc@openouttoc
|
||||
\Etoc@tocdepthset
|
||||
\begingroup
|
||||
\@ifstar
|
||||
{\let\Etoc@aftertitlehook\@empty\Etoc@table@fcontents}
|
||||
{\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@table@fcontents}%
|
||||
}% \etoctableofcontents
|
||||
\def\etocifisstarred{\ifx\Etoc@aftertitlehook\@empty
|
||||
\expandafter\@firstoftwo\else
|
||||
\expandafter\@secondoftwo
|
||||
\fi}
|
||||
\let\etocoriginaltableofcontents\tableofcontents
|
||||
\let\tableofcontents\etoctableofcontents
|
||||
\let\Etoc@listofhook\@empty
|
||||
\newcommand*\localtableofcontents{%
|
||||
\Etoc@openouttoc
|
||||
\Etoc@tocdepthset
|
||||
\begingroup
|
||||
\Etoc@listofhook
|
||||
\@ifstar
|
||||
{\let\Etoc@aftertitlehook\@empty\Etoc@localtable@fcontents}
|
||||
{\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@localtable@fcontents}%
|
||||
}% \localtableofcontents
|
||||
\newcommand*\localtableofcontentswithrelativedepth[1]{%
|
||||
\def\Etoc@@startlocaltochook{%
|
||||
\global\c@tocdepth\numexpr\etoclocaltop+#1\relax
|
||||
}%
|
||||
\def\Etoc@listofreset{\let\Etoc@@startlocaltochook\@empty
|
||||
\let\Etoc@listofreset\@empty}%
|
||||
\localtableofcontents
|
||||
}% \localtableofcontentswithrelativedepth
|
||||
\newcommand\etocsettocstyle[2]{%
|
||||
\Etoc@etocstylefalse
|
||||
\Etoc@classstylefalse
|
||||
\def\Etoc@tableofcontents@user@before{#1}%
|
||||
\def\Etoc@tableofcontents@user@after {#2}%
|
||||
}%
|
||||
\def\etocstoretocstyleinto#1{%
|
||||
%% \@ifdefinable#1{%
|
||||
\edef#1{\noexpand\Etoc@etocstylefalse\noexpand\Etoc@classstylefalse
|
||||
\def\noexpand\Etoc@tableofcontents@user@before{%
|
||||
\unexpanded\expandafter{\Etoc@tableofcontents@user@before}%
|
||||
}%
|
||||
\def\noexpand\Etoc@tableofcontents@user@after{%
|
||||
\unexpanded\expandafter{\Etoc@tableofcontents@user@after}%
|
||||
}%
|
||||
}%
|
||||
%% }%
|
||||
}%
|
||||
\def\Etoc@tableofcontents {%
|
||||
\Etoc@tableofcontents@etoc@before
|
||||
\ifEtoc@localtoc\ifEtoc@etocstyle\expandafter\expandafter\expandafter\@gobble\fi\fi
|
||||
\Etoc@tableofcontents@user@before
|
||||
\Etoc@tableofcontents@contents
|
||||
\ifEtoc@localtoc\ifEtoc@etocstyle\expandafter\expandafter\expandafter\@gobble\fi\fi
|
||||
\Etoc@tableofcontents@user@after
|
||||
\Etoc@tableofcontents@etoc@after
|
||||
\@gobble\etoc@
|
||||
}
|
||||
\def\Etoc@tableofcontents@etoc@before{%
|
||||
\ifnum\c@tocdepth>\Etoc@minf
|
||||
\else
|
||||
\expandafter\Etoc@gobtoetoc@
|
||||
\fi
|
||||
\Etoc@par
|
||||
\Etoc@beforetitlehook
|
||||
\etocbeforetitlehook
|
||||
\Etoc@storetocdepth
|
||||
\let\Etoc@savedcontentsline\contentsline
|
||||
\let\contentsline\Etoc@etoccontentsline
|
||||
\ifEtoc@standardlines
|
||||
\else
|
||||
\def\Etoc@do##1{%
|
||||
\expandafter\def\csname etocsaved##1tocline\endcsname
|
||||
{\PackageError{etoc}{%
|
||||
\expandafter\string\csname etocsaved##1tocline\endcsname\space
|
||||
has been deprecated\MessageBreak
|
||||
at 1.1a and is removed at 1.2.\MessageBreak
|
||||
Use \expandafter\string\csname l@##1\endcsname\space directly.\MessageBreak
|
||||
Reported \on@line}%
|
||||
{I will use \expandafter\string
|
||||
\csname l@##1\endcsname\space myself for this time.%
|
||||
}%
|
||||
\csname l@##1\endcsname
|
||||
}%
|
||||
}%
|
||||
\Etoc@dolevels
|
||||
\fi
|
||||
}%
|
||||
\def\Etoc@tableofcontents@contents{%
|
||||
\Etoc@tocdepthset
|
||||
\ifEtoc@parskip\parskip\z@skip\fi
|
||||
\Etoc@aftertitlehook
|
||||
\gdef\etoclocaltop{-\thr@@}%
|
||||
\Etoc@toctoc
|
||||
\etocaftercontentshook
|
||||
}%
|
||||
\def\Etoc@tableofcontents@etoc@after{%
|
||||
\@nobreakfalse
|
||||
\Etoc@restoretocdepth
|
||||
\ifx\Etoc@global\global
|
||||
\@ifundefined{tof@finish}
|
||||
{}
|
||||
{\ifx\tof@finish\@empty
|
||||
\else
|
||||
\global\let\contentsline\Etoc@savedcontentsline
|
||||
\fi
|
||||
}%
|
||||
\fi
|
||||
}
|
||||
\def\etocsetstyle#1{\ifcsname Etoc@#1@@\endcsname
|
||||
\expandafter\Etoc@setstyle@a
|
||||
\else
|
||||
\expandafter\Etoc@setstyle@error
|
||||
\fi {#1}%
|
||||
}
|
||||
\def\Etoc@setstyle@error #1{%
|
||||
\PackageWarning{etoc}{`#1' is unknown to etoc. \space Did you\MessageBreak
|
||||
forget some \string\etocsetlevel{#1}{<level>}?\MessageBreak
|
||||
Reported}%
|
||||
\@gobblefour
|
||||
}
|
||||
\def\Etoc@setstyle@a #1{%
|
||||
\edef\Etoc@tmp{\the\numexpr\csname Etoc@#1@@\endcsname}%
|
||||
\if1\unless\ifnum\Etoc@tmp<\Etoc@maxlevel 0\fi
|
||||
\unless\ifnum\Etoc@tmp>\Etoc@minf 0\fi1%
|
||||
\Etoc@standardlinesfalse
|
||||
\expandafter\Etoc@setstyle@b\expandafter\Etoc@tmp
|
||||
\else
|
||||
\ifnum\Etoc@tmp=\Etoc@maxlevel
|
||||
\in@{.#1,}{.figure,.table,}%
|
||||
\ifin@
|
||||
\PackageWarning{etoc}
|
||||
{You can not use \string\etocsetstyle\space with `#1'.\MessageBreak
|
||||
Check the package documentation (in particular about\MessageBreak
|
||||
\string\etoclocallistoffigureshook/\string\etoclocallistoftableshook)%
|
||||
\MessageBreak on how to customize
|
||||
figure and table entries in local\MessageBreak lists. Reported}%
|
||||
\else
|
||||
\PackageInfo{etoc}
|
||||
{Attempt to set the style of `#1',\MessageBreak
|
||||
whose level is currently the maximal one \etocthemaxlevel,\MessageBreak
|
||||
which is never displayed. \space This will be ignored\MessageBreak
|
||||
but note that we do quit compatibility mode.\MessageBreak
|
||||
Reported}%
|
||||
\Etoc@standardlinesfalse
|
||||
\fi
|
||||
\else
|
||||
\PackageWarning{etoc}{This should not happen. Reported}%
|
||||
\fi
|
||||
\expandafter\@gobblefour
|
||||
\fi
|
||||
}
|
||||
\long\def\Etoc@setstyle@b#1#2#3#4#5{%
|
||||
\expandafter\def\csname Etoc@begin@#1\endcsname {#2}%
|
||||
\expandafter\def\csname Etoc@prefix@#1\endcsname {#3}%
|
||||
\expandafter\def\csname Etoc@contents@#1\endcsname {#4}%
|
||||
\expandafter\def\csname Etoc@end@#1\endcsname {#5}%
|
||||
}
|
||||
\def\Etoc@setstyle@e#1{%
|
||||
\expandafter\let\csname Etoc@begin@#1\endcsname \@empty
|
||||
\expandafter\let\csname Etoc@prefix@#1\endcsname \@empty
|
||||
\expandafter\let\csname Etoc@contents@#1\endcsname \@empty
|
||||
\expandafter\let\csname Etoc@end@#1\endcsname \@empty
|
||||
}
|
||||
\def\Etoc@storelines@a#1{%
|
||||
\noexpand\Etoc@setstyle@b{#1}%
|
||||
{\expandafter\Etoc@expandonce\csname Etoc@begin@#1\endcsname}%
|
||||
{\expandafter\Etoc@expandonce\csname Etoc@prefix@#1\endcsname}%
|
||||
{\expandafter\Etoc@expandonce\csname Etoc@contents@#1\endcsname}%
|
||||
{\expandafter\Etoc@expandonce\csname Etoc@end@#1\endcsname}%
|
||||
}
|
||||
\def\Etoc@expandonce#1{\unexpanded\expandafter{#1}}
|
||||
\def\etocstorelinestylesinto#1{%
|
||||
\edef#1{\Etoc@storelines@a{-2}\Etoc@storelines@a{-1}\Etoc@storelines@a{0}%
|
||||
\Etoc@storelines@a {1}\Etoc@storelines@a {2}\Etoc@storelines@a{3}%
|
||||
\Etoc@storelines@a {4}\Etoc@storelines@a {5}%
|
||||
\ifEtoc@deeplevels
|
||||
\Etoc@storelines@a{6}\Etoc@storelines@a{7}\Etoc@storelines@a{8}%
|
||||
\Etoc@storelines@a{9}\Etoc@storelines@a{10}\Etoc@storelines@a{11}%
|
||||
\fi
|
||||
}%
|
||||
}
|
||||
\def\etocstorethislinestyleinto#1#2{%
|
||||
\edef#2{\expandafter\Etoc@storelines@a\expandafter{\number\etoclevel{#1}}}%
|
||||
}%
|
||||
\def\etocfontminustwo {\normalfont \LARGE \bfseries}
|
||||
\def\etocfontminusone {\normalfont \large \bfseries}
|
||||
\def\etocfontzero {\normalfont \large \bfseries}
|
||||
\def\etocfontone {\normalfont \normalsize \bfseries}
|
||||
\def\etocfonttwo {\normalfont \normalsize}
|
||||
\def\etocfontthree {\normalfont \footnotesize}
|
||||
\def\etocsepminustwo {4ex \@plus .5ex \@minus .5ex}
|
||||
\def\etocsepminusone {4ex \@plus .5ex \@minus .5ex}
|
||||
\def\etocsepzero {2.5ex \@plus .4ex \@minus .4ex}
|
||||
\def\etocsepone {1.5ex \@plus .3ex \@minus .3ex}
|
||||
\def\etocseptwo {.5ex \@plus .1ex \@minus .1ex}
|
||||
\def\etocsepthree {.25ex \@plus .05ex \@minus .05ex}
|
||||
\def\etocbaselinespreadminustwo {1}
|
||||
\def\etocbaselinespreadminusone {1}
|
||||
\def\etocbaselinespreadzero {1}
|
||||
\def\etocbaselinespreadone {1}
|
||||
\def\etocbaselinespreadtwo {1}
|
||||
\def\etocbaselinespreadthree {.9}
|
||||
\def\etocminustwoleftmargin {1.5em plus 0.5fil}
|
||||
\def\etocminustworightmargin {1.5em plus -0.5fil}
|
||||
\def\etocminusoneleftmargin {1em}
|
||||
\def\etocminusonerightmargin {1em}
|
||||
\def\etoctoclineleaders
|
||||
{\hbox{\normalfont\normalsize\hb@xt@2ex {\hss.\hss}}}
|
||||
\def\etocabbrevpagename {p.~}
|
||||
\def\etocpartname {Part}
|
||||
\def\etocbookname {Book}
|
||||
\def\etocdefaultlines{%
|
||||
\Etoc@standardlinesfalse
|
||||
\etocdefaultlines@setbook
|
||||
\etocdefaultlines@setpart
|
||||
\etocdefaultlines@setchapter
|
||||
\etocdefaultlines@setsection
|
||||
\etocdefaultlines@setsubsection
|
||||
\etocdefaultlines@setsubsubsection
|
||||
\etocdefaultlines@setdeeperones
|
||||
}
|
||||
\def\etocnoprotrusion{\leavevmode\kern-\p@\kern\p@}
|
||||
\@ifclassloaded{memoir}{%
|
||||
\def\etocdefaultlines@setbook{%
|
||||
\Etoc@setstyle@b
|
||||
{-2}%
|
||||
{\addpenalty\@M\etocskipfirstprefix}
|
||||
{\addpenalty\@secpenalty}
|
||||
{\begingroup
|
||||
\etocfontminustwo
|
||||
\addvspace{\etocsepminustwo}%
|
||||
\parindent \z@
|
||||
\leftskip \etocminustwoleftmargin
|
||||
\rightskip \etocminustworightmargin
|
||||
\parfillskip \@flushglue
|
||||
\vbox{\etocifnumbered{\etoclink{\etocbookname\enspace\etocthenumber:\quad}}{}%
|
||||
\etocname
|
||||
\baselineskip\etocbaselinespreadminustwo\baselineskip
|
||||
\par}%
|
||||
\addpenalty\@M\addvspace{\etocsepminusone}%
|
||||
\endgroup}
|
||||
{}%
|
||||
}
|
||||
}{\let\etocdefaultlines@setbook\@empty}
|
||||
\def\etocdefaultlines@setpart{%
|
||||
\Etoc@setstyle@b
|
||||
{-1}%
|
||||
{\addpenalty\@M\etocskipfirstprefix}
|
||||
{\addpenalty\@secpenalty}
|
||||
{\begingroup
|
||||
\etocfontminusone
|
||||
\addvspace{\etocsepminusone}%
|
||||
\parindent \z@
|
||||
\leftskip \etocminusoneleftmargin
|
||||
\rightskip \etocminusonerightmargin
|
||||
\parfillskip \@flushglue
|
||||
\vbox{\etocifnumbered{\etoclink{\etocpartname\enspace\etocthenumber.\quad}}{}%
|
||||
\etocname
|
||||
\baselineskip\etocbaselinespreadminusone\baselineskip
|
||||
\par}%
|
||||
\addpenalty\@M\addvspace{\etocsepzero}%
|
||||
\endgroup}
|
||||
{}%
|
||||
}
|
||||
\def\etocdefaultlines@setchapter{%
|
||||
\Etoc@setstyle@b
|
||||
{0}%
|
||||
{\addpenalty\@M\etocskipfirstprefix}
|
||||
{\addpenalty\@itempenalty}
|
||||
{\begingroup
|
||||
\etocfontzero
|
||||
\addvspace{\etocsepzero}%
|
||||
\parindent \z@ \parfillskip \@flushglue
|
||||
\vbox{\etocifnumbered{\etocnumber.\enspace}{}\etocname
|
||||
\baselineskip\etocbaselinespreadzero\baselineskip
|
||||
\par}%
|
||||
\endgroup}
|
||||
{\addpenalty{-\@highpenalty}\addvspace{\etocsepminusone}}%
|
||||
}
|
||||
\def\etocdefaultlines@setsection{%
|
||||
\Etoc@setstyle@b
|
||||
{1}%
|
||||
{\addpenalty\@M\etocskipfirstprefix}
|
||||
{\addpenalty\@itempenalty}
|
||||
{\begingroup
|
||||
\etocfontone
|
||||
\addvspace{\etocsepone}%
|
||||
\parindent \z@ \parfillskip \z@
|
||||
\setbox\z@\vbox{\parfillskip\@flushglue
|
||||
\etocname\par
|
||||
\setbox\tw@\lastbox
|
||||
\global\setbox\@ne\hbox{\unhbox\tw@\ }}%
|
||||
\dimen\z@=\wd\@ne
|
||||
\setbox\z@=\etoctoclineleaders
|
||||
\advance\dimen\z@\wd\z@
|
||||
\etocifnumbered
|
||||
{\setbox\tw@\hbox{\etocnumber, \etocabbrevpagename\etocpage\etocnoprotrusion}}
|
||||
{\setbox\tw@\hbox{\etocabbrevpagename\etocpage\etocnoprotrusion}}%
|
||||
\advance\dimen\z@\wd\tw@
|
||||
\ifdim\dimen\z@ < \linewidth
|
||||
\vbox{\etocname~%
|
||||
\leaders\box\z@\hfil\box\tw@
|
||||
\baselineskip\etocbaselinespreadone\baselineskip
|
||||
\par}%
|
||||
\else
|
||||
\vbox{\etocname~%
|
||||
\leaders\copy\z@\hfil\break
|
||||
\hbox{}\leaders\box\z@\hfil\box\tw@
|
||||
\baselineskip\etocbaselinespreadone\baselineskip
|
||||
\par}%
|
||||
\fi
|
||||
\endgroup}
|
||||
{\addpenalty\@secpenalty\addvspace{\etocsepzero}}%
|
||||
}
|
||||
\def\etocdefaultlines@setsubsection{%
|
||||
\Etoc@setstyle@b
|
||||
{2}%
|
||||
{\addpenalty\@medpenalty\etocskipfirstprefix}
|
||||
{\addpenalty\@itempenalty}
|
||||
{\begingroup
|
||||
\etocfonttwo
|
||||
\addvspace{\etocseptwo}%
|
||||
\parindent \z@ \parfillskip \z@
|
||||
\setbox\z@\vbox{\parfillskip\@flushglue
|
||||
\etocname\par\setbox\tw@\lastbox
|
||||
\global\setbox\@ne\hbox{\unhbox\tw@}}%
|
||||
\dimen\z@=\wd\@ne
|
||||
\setbox\z@=\etoctoclineleaders
|
||||
\advance\dimen\z@\wd\z@
|
||||
\etocifnumbered
|
||||
{\setbox\tw@\hbox{\etocnumber, \etocabbrevpagename\etocpage\etocnoprotrusion}}
|
||||
{\setbox\tw@\hbox{\etocabbrevpagename\etocpage\etocnoprotrusion}}%
|
||||
\advance\dimen\z@\wd\tw@
|
||||
\ifdim\dimen\z@ < \linewidth
|
||||
\vbox{\etocname~%
|
||||
\leaders\box\z@\hfil\box\tw@
|
||||
\baselineskip\etocbaselinespreadtwo\baselineskip
|
||||
\par}%
|
||||
\else
|
||||
\vbox{\etocname~%
|
||||
\leaders\copy\z@\hfil\break
|
||||
\hbox{}\leaders\box\z@\hfil\box\tw@
|
||||
\baselineskip\etocbaselinespreadtwo\baselineskip
|
||||
\par}%
|
||||
\fi
|
||||
\endgroup}
|
||||
{\addpenalty\@secpenalty\addvspace{\etocsepone}}%
|
||||
}
|
||||
\def\etocdefaultlines@setsubsubsection{%
|
||||
\Etoc@setstyle@b
|
||||
{3}%
|
||||
{\addpenalty\@M
|
||||
\etocfontthree
|
||||
\vspace{\etocsepthree}%
|
||||
\noindent
|
||||
\etocskipfirstprefix}
|
||||
{\allowbreak\,--\,}
|
||||
{\etocname}
|
||||
{.\hfil
|
||||
\begingroup
|
||||
\baselineskip\etocbaselinespreadthree\baselineskip
|
||||
\par
|
||||
\endgroup
|
||||
\addpenalty{-\@highpenalty}}
|
||||
}
|
||||
\def\etocdefaultlines@setdeeperones{%
|
||||
\Etoc@setstyle@e{4}%
|
||||
\Etoc@setstyle@e{5}%
|
||||
\ifEtoc@deeplevels
|
||||
\Etoc@setstyle@e{6}%
|
||||
\Etoc@setstyle@e{7}%
|
||||
\Etoc@setstyle@e{8}%
|
||||
\Etoc@setstyle@e{9}%
|
||||
\Etoc@setstyle@e{10}%
|
||||
\Etoc@setstyle@e{11}%
|
||||
\fi
|
||||
}
|
||||
\def\etocabovetocskip{3.5ex \@plus 1ex \@minus .2ex}
|
||||
\def\etocbelowtocskip{3.5ex \@plus 1ex \@minus .2ex}
|
||||
\def\etoccolumnsep{2em}
|
||||
\def\etocmulticolsep{0ex}
|
||||
\def\etocmulticolpretolerance{-1}
|
||||
\def\etocmulticoltolerance{200}
|
||||
\def\etocdefaultnbcol{2}
|
||||
\def\etocinnertopsep{2ex}
|
||||
\newcommand\etocmulticolstyle[2][\etocdefaultnbcol]{%
|
||||
\etocsettocstyle
|
||||
{\let\etocoldpar\par
|
||||
\addvspace{\etocabovetocskip}%
|
||||
\ifnum #1>\@ne
|
||||
\expandafter\@firstoftwo
|
||||
\else \expandafter\@secondoftwo
|
||||
\fi
|
||||
{\multicolpretolerance\etocmulticolpretolerance
|
||||
\multicoltolerance\etocmulticoltolerance
|
||||
\setlength{\columnsep}{\etoccolumnsep}%
|
||||
\setlength{\multicolsep}{\etocmulticolsep}%
|
||||
\begin{multicols}{#1}[#2\etocoldpar\addvspace{\etocinnertopsep}]}
|
||||
{#2\ifvmode\else\begingroup\interlinepenalty\@M\parskip\z@skip
|
||||
\@@par\endgroup
|
||||
\fi
|
||||
\nobreak\addvspace{\etocinnertopsep}%
|
||||
\pretolerance\etocmulticolpretolerance
|
||||
\tolerance\etocmulticoltolerance}%
|
||||
}%
|
||||
{\ifnum #1>\@ne
|
||||
\expandafter\@firstofone
|
||||
\else \expandafter\@gobble
|
||||
\fi
|
||||
{\end{multicols}}%
|
||||
\addvspace{\etocbelowtocskip}}%
|
||||
}
|
||||
\def\etocinnerbottomsep{3.5ex}
|
||||
\def\etocinnerleftsep{2em}
|
||||
\def\etocinnerrightsep{2em}
|
||||
\def\etoctoprule{\hrule}
|
||||
\def\etocleftrule{\vrule}
|
||||
\def\etocrightrule{\vrule}
|
||||
\def\etocbottomrule{\hrule}
|
||||
\def\etoctoprulecolorcmd{\relax}
|
||||
\def\etocbottomrulecolorcmd{\relax}
|
||||
\def\etocleftrulecolorcmd{\relax}
|
||||
\def\etocrightrulecolorcmd{\relax}
|
||||
\def\etoc@ruledheading #1{%
|
||||
\hb@xt@\linewidth{\color@begingroup
|
||||
\hss #1\hss\hskip-\linewidth
|
||||
\etoctoprulecolorcmd\leaders\etoctoprule\hss
|
||||
\phantom{#1}%
|
||||
\leaders\etoctoprule\hss\color@endgroup}%
|
||||
\nointerlineskip\nobreak\vskip\etocinnertopsep}
|
||||
\newcommand*\etocruledstyle[2][\etocdefaultnbcol]{%
|
||||
\etocsettocstyle
|
||||
{\addvspace{\etocabovetocskip}%
|
||||
\ifnum #1>\@ne
|
||||
\expandafter\@firstoftwo
|
||||
\else \expandafter\@secondoftwo
|
||||
\fi
|
||||
{\multicolpretolerance\etocmulticolpretolerance
|
||||
\multicoltolerance\etocmulticoltolerance
|
||||
\setlength{\columnsep}{\etoccolumnsep}%
|
||||
\setlength{\multicolsep}{\etocmulticolsep}%
|
||||
\begin{multicols}{#1}[\etoc@ruledheading{#2}]}
|
||||
{\etoc@ruledheading{#2}%
|
||||
\pretolerance\etocmulticolpretolerance
|
||||
\tolerance\etocmulticoltolerance}}
|
||||
{\ifnum #1>\@ne\expandafter\@firstofone
|
||||
\else \expandafter\@gobble
|
||||
\fi
|
||||
{\end{multicols}}%
|
||||
\addvspace{\etocbelowtocskip}}}
|
||||
\def\etocframedmphook{\relax}
|
||||
\long\def\etocbkgcolorcmd{\relax}
|
||||
\long\def\Etoc@relax{\relax}
|
||||
\newbox\etoc@framed@titlebox
|
||||
\newbox\etoc@framed@contentsbox
|
||||
\newcommand*\etocframedstyle[2][\etocdefaultnbcol]{%
|
||||
\etocsettocstyle{%
|
||||
\addvspace{\etocabovetocskip}%
|
||||
\sbox\z@{#2}%
|
||||
\dimen\z@\dp\z@
|
||||
\ifdim\wd\z@<\linewidth \dp\z@\z@ \else \dimen\z@\z@ \fi
|
||||
\setbox\etoc@framed@titlebox=\hb@xt@\linewidth{\color@begingroup
|
||||
\hss
|
||||
\ifx\etocbkgcolorcmd\Etoc@relax
|
||||
\else
|
||||
\sbox\tw@{\color{white}%
|
||||
\vrule\@width\wd\z@\@height\ht\z@\@depth\dimen\z@}%
|
||||
\ifdim\wd\z@<\linewidth \dp\tw@\z@\fi
|
||||
\box\tw@
|
||||
\hskip-\wd\z@
|
||||
\fi
|
||||
\copy\z@
|
||||
\hss
|
||||
\hskip-\linewidth
|
||||
\etoctoprulecolorcmd\leaders\etoctoprule\hss
|
||||
\hskip\wd\z@
|
||||
\etoctoprulecolorcmd\leaders\etoctoprule\hss\color@endgroup}%
|
||||
\setbox\z@\hbox{\etocleftrule\etocrightrule}%
|
||||
\dimen\tw@\linewidth\advance\dimen\tw@-\wd\z@
|
||||
\advance\dimen\tw@-\etocinnerleftsep
|
||||
\advance\dimen\tw@-\etocinnerrightsep
|
||||
\setbox\etoc@framed@contentsbox=\vbox\bgroup
|
||||
\hsize\dimen\tw@
|
||||
\kern\dimen\z@
|
||||
\vskip\etocinnertopsep
|
||||
\hbox\bgroup
|
||||
\begin{minipage}{\hsize}%
|
||||
\etocframedmphook
|
||||
\ifnum #1>\@ne
|
||||
\expandafter\@firstoftwo
|
||||
\else \expandafter\@secondoftwo
|
||||
\fi
|
||||
{\multicolpretolerance\etocmulticolpretolerance
|
||||
\multicoltolerance\etocmulticoltolerance
|
||||
\setlength{\columnsep}{\etoccolumnsep}%
|
||||
\setlength{\multicolsep}{\etocmulticolsep}%
|
||||
\begin{multicols}{#1}}
|
||||
{\pretolerance\etocmulticolpretolerance
|
||||
\tolerance\etocmulticoltolerance}}
|
||||
{\ifnum #1>\@ne\expandafter\@firstofone
|
||||
\else \expandafter\@gobble
|
||||
\fi
|
||||
{\end{multicols}\unskip }%
|
||||
\end{minipage}%
|
||||
\egroup
|
||||
\vskip\etocinnerbottomsep
|
||||
\egroup
|
||||
\vbox{\hsize\linewidth
|
||||
\ifx\etocbkgcolorcmd\Etoc@relax
|
||||
\else
|
||||
\kern\ht\etoc@framed@titlebox
|
||||
\kern\dp\etoc@framed@titlebox
|
||||
\hb@xt@\linewidth{\color@begingroup
|
||||
\etocleftrulecolorcmd\etocleftrule
|
||||
\etocbkgcolorcmd
|
||||
\leaders\vrule
|
||||
\@height\ht\etoc@framed@contentsbox
|
||||
\@depth\dp\etoc@framed@contentsbox
|
||||
\hss
|
||||
\etocrightrulecolorcmd\etocrightrule
|
||||
\color@endgroup}\nointerlineskip
|
||||
\vskip-\dp\etoc@framed@contentsbox
|
||||
\vskip-\ht\etoc@framed@contentsbox
|
||||
\vskip-\dp\etoc@framed@titlebox
|
||||
\vskip-\ht\etoc@framed@titlebox
|
||||
\fi
|
||||
\box\etoc@framed@titlebox\nointerlineskip
|
||||
\hb@xt@\linewidth{\color@begingroup
|
||||
{\etocleftrulecolorcmd\etocleftrule}%
|
||||
\hss\box\etoc@framed@contentsbox\hss
|
||||
\etocrightrulecolorcmd\etocrightrule\color@endgroup}
|
||||
\nointerlineskip
|
||||
\vskip\ht\etoc@framed@contentsbox
|
||||
\vskip\dp\etoc@framed@contentsbox
|
||||
\hb@xt@\linewidth{\color@begingroup\etocbottomrulecolorcmd
|
||||
\leaders\etocbottomrule\hss\color@endgroup}}
|
||||
\addvspace{\etocbelowtocskip}}}
|
||||
\newcommand\etoc@multicoltoc[2][\etocdefaultnbcol]{%
|
||||
\etocmulticolstyle[#1]{#2}%
|
||||
\tableofcontents}
|
||||
\newcommand\etoc@multicoltoci[2][\etocdefaultnbcol]{%
|
||||
\etocmulticolstyle[#1]{#2}%
|
||||
\tableofcontents*}
|
||||
\newcommand\etoc@local@multicoltoc[2][\etocdefaultnbcol]{%
|
||||
\etocmulticolstyle[#1]{#2}%
|
||||
\localtableofcontents}
|
||||
\newcommand\etoc@local@multicoltoci[2][\etocdefaultnbcol]{%
|
||||
\etocmulticolstyle[#1]{#2}%
|
||||
\localtableofcontents*}
|
||||
\newcommand*\etoc@ruledtoc[2][\etocdefaultnbcol]{%
|
||||
\etocruledstyle[#1]{#2}%
|
||||
\tableofcontents}
|
||||
\newcommand*\etoc@ruledtoci[2][\etocdefaultnbcol]{%
|
||||
\etocruledstyle[#1]{#2}%
|
||||
\tableofcontents*}
|
||||
\newcommand*\etoc@local@ruledtoc[2][\etocdefaultnbcol]{%
|
||||
\etocruledstyle[#1]{#2}%
|
||||
\localtableofcontents}
|
||||
\newcommand*\etoc@local@ruledtoci[2][\etocdefaultnbcol]{%
|
||||
\etocruledstyle[#1]{#2}%
|
||||
\localtableofcontents*}
|
||||
\newcommand*\etoc@framedtoc[2][\etocdefaultnbcol]{%
|
||||
\etocframedstyle[#1]{#2}%
|
||||
\tableofcontents}
|
||||
\newcommand*\etoc@framedtoci[2][\etocdefaultnbcol]{%
|
||||
\etocframedstyle[#1]{#2}%
|
||||
\tableofcontents*}
|
||||
\newcommand*\etoc@local@framedtoc[2][\etocdefaultnbcol]{%
|
||||
\etocframedstyle[#1]{#2}%
|
||||
\localtableofcontents}
|
||||
\newcommand*\etoc@local@framedtoci[2][\etocdefaultnbcol]{%
|
||||
\etocframedstyle[#1]{#2}%
|
||||
\localtableofcontents*}
|
||||
\def\etocmulticol{\begingroup
|
||||
\Etoc@mustclosegrouptrue
|
||||
\@ifstar
|
||||
{\etoc@multicoltoci}
|
||||
{\etoc@multicoltoc}}
|
||||
\def\etocruled{\begingroup
|
||||
\Etoc@mustclosegrouptrue
|
||||
\@ifstar
|
||||
{\etoc@ruledtoci}
|
||||
{\etoc@ruledtoc}}
|
||||
\def\etocframed{\begingroup
|
||||
\Etoc@mustclosegrouptrue
|
||||
\@ifstar
|
||||
{\etoc@framedtoci}
|
||||
{\etoc@framedtoc}}
|
||||
\def\etoclocalmulticol{\begingroup
|
||||
\Etoc@mustclosegrouptrue
|
||||
\@ifstar
|
||||
{\etoc@local@multicoltoci}
|
||||
{\etoc@local@multicoltoc}}
|
||||
\def\etoclocalruled{\begingroup
|
||||
\Etoc@mustclosegrouptrue
|
||||
\@ifstar
|
||||
{\etoc@local@ruledtoci}
|
||||
{\etoc@local@ruledtoc}}
|
||||
\def\etoclocalframed{\begingroup
|
||||
\Etoc@mustclosegrouptrue
|
||||
\@ifstar
|
||||
{\etoc@local@framedtoci}
|
||||
{\etoc@local@framedtoc}}
|
||||
\def\etocmemoirtoctotocfmt #1#2{%
|
||||
\PackageWarning{etoc}
|
||||
{\string\etocmemoirtoctotocfmt\space is deprecated.\MessageBreak
|
||||
Use in its place \string\etocsettoclineforclasstoc,\MessageBreak
|
||||
and \string\etocsettoclineforclasslistof{toc} (or {lof}, {lot}).
|
||||
I will do this now.\MessageBreak
|
||||
Reported}%
|
||||
\etocsettoclineforclasstoc{#1}{#2}%
|
||||
\etocsettoclineforclasslistof{toc}{#1}{#2}%
|
||||
}
|
||||
\def\etocsettoclineforclasstoc #1#2{%
|
||||
\def\etocclassmaintocaddtotoc{\etocglobalheadtotoc{#1}{#2}}%
|
||||
}
|
||||
\def\etocsettoclineforclasslistof #1#2#3{%
|
||||
\@namedef{etocclasslocal#1addtotoc}{\etoclocalheadtotoc{#2}{#3}}%
|
||||
}
|
||||
\let\etocclasslocaltocaddtotoc\@empty
|
||||
\let\etocclasslocallofaddtotoc\@empty
|
||||
\let\etocclasslocallotaddtotoc\@empty
|
||||
\ifdefined\c@chapter
|
||||
\def\etocclasslocaltocmaketitle{\section*{\localcontentsname}}
|
||||
\def\etocclasslocallofmaketitle{\section*{\locallistfigurename}}
|
||||
\def\etocclasslocallotmaketitle{\section*{\locallisttablename}}
|
||||
\etocsettoclineforclasstoc {chapter}{\contentsname}
|
||||
\etocsettoclineforclasslistof{toc}{section}{\localcontentsname}
|
||||
\etocsettoclineforclasslistof{lof}{section}{\locallistfigurename}
|
||||
\etocsettoclineforclasslistof{lot}{section}{\locallisttablename}
|
||||
\else
|
||||
\def\etocclasslocaltocmaketitle{\subsection*{\localcontentsname}}%
|
||||
\def\etocclasslocallofmaketitle{\subsection*{\locallistfigurename}}%
|
||||
\def\etocclasslocallotmaketitle{\subsection*{\locallisttablename}}%
|
||||
\etocsettoclineforclasstoc {section}{\contentsname}
|
||||
\etocsettoclineforclasslistof{toc}{subsection}{\localcontentsname}
|
||||
\etocsettoclineforclasslistof{lof}{subsection}{\locallistfigurename}
|
||||
\etocsettoclineforclasslistof{lot}{subsection}{\locallisttablename}
|
||||
\fi
|
||||
\def\etocclasslocalperhapsaddtotoc #1{%
|
||||
\etocifisstarred
|
||||
{}
|
||||
{\csname ifEtoc@local#1totoc\endcsname
|
||||
\csname etocclasslocal#1addtotoc\endcsname
|
||||
\fi
|
||||
}%
|
||||
}
|
||||
\def\etocarticlestyle{%
|
||||
\etocsettocstyle
|
||||
{\ifEtoc@localtoc
|
||||
\@nameuse{etocclasslocal\Etoc@currext maketitle}%
|
||||
\etocclasslocalperhapsaddtotoc\Etoc@currext
|
||||
\else
|
||||
\section *{\contentsname
|
||||
\@mkboth {\MakeUppercase \contentsname}
|
||||
{\MakeUppercase \contentsname}}%
|
||||
\etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}%
|
||||
\fi
|
||||
}
|
||||
{}%
|
||||
}
|
||||
\def\etocarticlestylenomarks{%
|
||||
\etocsettocstyle
|
||||
{\ifEtoc@localtoc
|
||||
\@nameuse{etocclasslocal\Etoc@currext maketitle}%
|
||||
\etocclasslocalperhapsaddtotoc\Etoc@currext
|
||||
\else
|
||||
\section *{\contentsname}%
|
||||
\etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}%
|
||||
\fi
|
||||
}
|
||||
{}%
|
||||
}
|
||||
\def\etocbookstyle{%
|
||||
\etocsettocstyle
|
||||
{\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi
|
||||
\ifEtoc@localtoc
|
||||
\@nameuse{etocclasslocal\Etoc@currext maketitle}%
|
||||
\etocclasslocalperhapsaddtotoc\Etoc@currext
|
||||
\else
|
||||
\chapter *{\contentsname
|
||||
\@mkboth {\MakeUppercase \contentsname}
|
||||
{\MakeUppercase \contentsname}}%
|
||||
\etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}%
|
||||
\fi
|
||||
}%
|
||||
{\if@restonecol \twocolumn \fi}%
|
||||
}
|
||||
\def\etocbookstylenomarks{%
|
||||
\etocsettocstyle
|
||||
{\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi
|
||||
\ifEtoc@localtoc
|
||||
\@nameuse{etocclasslocal\Etoc@currext maketitle}%
|
||||
\etocclasslocalperhapsaddtotoc\Etoc@currext
|
||||
\else
|
||||
\chapter *{\contentsname}%
|
||||
\etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}%
|
||||
\fi
|
||||
}%
|
||||
{\if@restonecol \twocolumn \fi}%
|
||||
}
|
||||
\let\etocreportstyle\etocbookstyle
|
||||
\let\etocreportstylenomarks\etocbookstylenomarks
|
||||
\def\etocmemoirstyle{%
|
||||
\etocsettocstyle
|
||||
{\ensureonecol \par \begingroup \phantomsection
|
||||
\ifx\Etoc@aftertitlehook\@empty
|
||||
\else
|
||||
\ifmem@em@starred@listof
|
||||
\else
|
||||
\ifEtoc@localtoc
|
||||
\etocclasslocalperhapsaddtotoc\Etoc@currext
|
||||
\else
|
||||
\ifEtoc@maintoctotoc
|
||||
\etocclassmaintocaddtotoc
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\ifEtoc@localtoc
|
||||
\@namedef{@\Etoc@currext maketitle}{%
|
||||
\@nameuse{etocclasslocal\Etoc@currext maketitle}%
|
||||
}%
|
||||
\fi
|
||||
\@nameuse {@\Etoc@currext maketitle} %<< space token here from memoir code
|
||||
\ifx\Etoc@aftertitlehook\@empty
|
||||
\else
|
||||
\Etoc@aftertitlehook \let \Etoc@aftertitlehook \relax
|
||||
\fi
|
||||
\parskip \cftparskip \@nameuse {cft\Etoc@currext beforelisthook}%
|
||||
}%
|
||||
{\@nameuse {cft\Etoc@currext afterlisthook}%
|
||||
\endgroup\restorefromonecol
|
||||
}%
|
||||
}
|
||||
\let\Etoc@beforetitlehook\@empty
|
||||
\if1\@ifclassloaded{scrartcl}0{\@ifclassloaded{scrbook}0{\@ifclassloaded{scrreprt}01}}%
|
||||
\expandafter\@gobble
|
||||
\else
|
||||
\ifdefined\setuptoc
|
||||
\def\Etoc@beforetitlehook{%
|
||||
\ifEtoc@localtoc
|
||||
\etocclasslocalperhapsaddtotoc\Etoc@currext
|
||||
\setuptoc{\Etoc@currext}{leveldown}%
|
||||
\else
|
||||
\etocifisstarred{}{\etocifmaintoctotoc{\setuptoc{toc}{totoc}}}%
|
||||
\fi
|
||||
}%
|
||||
\fi
|
||||
\expandafter\@firstofone
|
||||
\fi
|
||||
{\def\etocclasslocalperhapsaddtotoc #1{%
|
||||
\etocifisstarred
|
||||
{}%
|
||||
{\csname ifEtoc@local#1totoc\endcsname
|
||||
\setuptoc{\Etoc@currext}{totoc}%
|
||||
\fi
|
||||
}%
|
||||
}%
|
||||
}
|
||||
\ifdefined\Iftocfeature
|
||||
\def\etoc@Iftocfeature{\Iftocfeature}%
|
||||
\else
|
||||
\def\etoc@Iftocfeature{\iftocfeature}%
|
||||
\fi
|
||||
\def\etocscrartclstyle{%
|
||||
\etocsettocstyle
|
||||
{\ifx\Etoc@currext\Etoc@tocext
|
||||
\expandafter\@firstofone
|
||||
\else
|
||||
\expandafter\@gobble
|
||||
\fi
|
||||
{\let\if@dynlist\if@tocleft}%
|
||||
\edef\@currext{\Etoc@currext}%
|
||||
\@ifundefined{listof\@currext name}%
|
||||
{\def\list@fname{\listofname~\@currext}}%
|
||||
{\expandafter\let\expandafter\list@fname
|
||||
\csname listof\@currext name\endcsname}%
|
||||
\etoc@Iftocfeature {\@currext}{onecolumn}
|
||||
{\etoc@Iftocfeature {\@currext}{leveldown}
|
||||
{}
|
||||
{\if@twocolumn \aftergroup \twocolumn \onecolumn \fi }}
|
||||
{}%
|
||||
\etoc@Iftocfeature {\@currext}{numberline}%
|
||||
{\def \nonumberline {\numberline {}}}{}%
|
||||
\expandafter\tocbasic@listhead\expandafter {\list@fname}%
|
||||
\begingroup \expandafter \expandafter \expandafter
|
||||
\endgroup \expandafter
|
||||
\ifx
|
||||
\csname microtypesetup\endcsname \relax
|
||||
\else
|
||||
\etoc@Iftocfeature {\@currext}{noprotrusion}{}
|
||||
{\microtypesetup {protrusion=false}%
|
||||
\PackageInfo {tocbasic}%
|
||||
{character protrusion at \@currext\space deactivated}}%
|
||||
\fi
|
||||
\etoc@Iftocfeature{\@currext}{noparskipfake}{}{%
|
||||
\ifvmode \@tempskipa\lastskip \vskip-\lastskip
|
||||
\addtolength{\@tempskipa}{\parskip}\vskip\@tempskipa\fi
|
||||
}%
|
||||
\setlength {\parskip }{\z@ }%
|
||||
\setlength {\parindent }{\z@ }%
|
||||
\setlength {\parfillskip }{\z@ \@plus 1fil}%
|
||||
\csname tocbasic@@before@hook\endcsname
|
||||
\csname tb@\@currext @before@hook\endcsname
|
||||
}% end of before_toc
|
||||
{% start of after_toc
|
||||
\providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file
|
||||
\edef\@currext{\Etoc@currext}%
|
||||
\csname tb@\@currext @after@hook\endcsname
|
||||
\csname tocbasic@@after@hook\endcsname
|
||||
}% end of after_toc
|
||||
}
|
||||
\let\etocscrbookstyle\etocscrartclstyle
|
||||
\let\etocscrreprtstyle\etocscrartclstyle
|
||||
\def\etocclasstocstyle{\etocarticlestyle}
|
||||
\newcommand*\etocmarkboth[1]{%
|
||||
\@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}}
|
||||
\newcommand*\etocmarkbothnouc[1]{\@mkboth{#1}{#1}}
|
||||
\newcommand\etoctocstyle[3][section]{\etocmulticolstyle[#2]%
|
||||
{\csname #1\endcsname *{#3}}}
|
||||
\newcommand\etoctocstylewithmarks[4][section]{\etocmulticolstyle[#2]%
|
||||
{\csname #1\endcsname *{#3\etocmarkboth{#4}}}}
|
||||
\newcommand\etoctocstylewithmarksnouc[4][section]{\etocmulticolstyle[#2]%
|
||||
{\csname #1\endcsname *{#3\etocmarkbothnouc{#4}}}}
|
||||
\def\Etoc@redefetocstylesforchapters{%
|
||||
\renewcommand\etoctocstylewithmarks[4][chapter]{%
|
||||
\etocmulticolstyle[##2]{\csname ##1\endcsname *{##3\etocmarkboth{##4}}}%
|
||||
}
|
||||
\renewcommand\etoctocstylewithmarksnouc[4][chapter]{%
|
||||
\etocmulticolstyle[##2]{\csname ##1\endcsname *{##3\etocmarkbothnouc{##4}}}%
|
||||
}
|
||||
\renewcommand\etoctocstyle[3][chapter]{%
|
||||
\etocmulticolstyle[##2]{\csname ##1\endcsname *{##3}}
|
||||
}
|
||||
}
|
||||
\@ifclassloaded{scrartcl}
|
||||
{\renewcommand*\etocclasstocstyle{\etocscrartclstyle}}{}
|
||||
\@ifclassloaded{book}
|
||||
{\renewcommand*\etocfontone{\normalfont\normalsize}
|
||||
\renewcommand*\etocclasstocstyle{\etocbookstyle}
|
||||
\Etoc@redefetocstylesforchapters}{}
|
||||
\@ifclassloaded{report}
|
||||
{\renewcommand*\etocfontone{\normalfont\normalsize}
|
||||
\renewcommand*\etocclasstocstyle{\etocreportstyle}
|
||||
\Etoc@redefetocstylesforchapters}{}
|
||||
\@ifclassloaded{scrbook}
|
||||
{\renewcommand*\etocfontone{\normalfont\normalsize}
|
||||
\renewcommand*\etocclasstocstyle{\etocscrbookstyle}
|
||||
\Etoc@redefetocstylesforchapters}{}
|
||||
\@ifclassloaded{scrreprt}
|
||||
{\renewcommand*\etocfontone{\normalfont\normalsize}
|
||||
\renewcommand*\etocclasstocstyle{\etocscrreprtstyle}
|
||||
\Etoc@redefetocstylesforchapters}{}
|
||||
\@ifclassloaded{memoir}
|
||||
{\renewcommand*\etocfontone{\normalfont\normalsize}
|
||||
\renewcommand*\etocclasstocstyle{\etocmemoirstyle}
|
||||
\Etoc@redefetocstylesforchapters}{}
|
||||
\def\etoctocloftstyle {%
|
||||
\etocsettocstyle{%
|
||||
\@cfttocstart
|
||||
\par
|
||||
\begingroup
|
||||
\parindent\z@ \parskip\cftparskip
|
||||
\@nameuse{@cftmake\Etoc@currext title}%
|
||||
\ifEtoc@localtoc
|
||||
\etoctocloftlocalperhapsaddtotoc\Etoc@currext
|
||||
\else
|
||||
\etocifisstarred {}{\ifEtoc@maintoctotoc\@cftdobibtoc\fi}%
|
||||
\fi
|
||||
}%
|
||||
{%
|
||||
\endgroup
|
||||
\@cfttocfinish
|
||||
}%
|
||||
}
|
||||
\def\etoctocloftlocalperhapsaddtotoc#1{%
|
||||
\etocifisstarred
|
||||
{}%
|
||||
{\csname ifEtoc@local#1totoc\endcsname
|
||||
\ifdefined\c@chapter\def\@tocextra{@section}\else\def\@tocextra{@subsection}\fi
|
||||
\csname @cftdobib#1\endcsname
|
||||
\fi
|
||||
}%
|
||||
}
|
||||
\def\etoctocbibindstyle {%
|
||||
\etocsettocstyle {%
|
||||
\toc@start
|
||||
\ifEtoc@localtoc
|
||||
\@nameuse{etocclasslocal\Etoc@currext maketitle}%
|
||||
\etocclasslocalperhapsaddtotoc\Etoc@currext
|
||||
\else
|
||||
\etoc@tocbibind@dotoctitle
|
||||
\fi
|
||||
}%
|
||||
{\toc@finish}%
|
||||
}
|
||||
\def\etoc@tocbibind@dotoctitle {%
|
||||
\if@bibchapter
|
||||
\etocifisstarred
|
||||
{\chapter*{\contentsname}\prw@mkboth{\contentsname} % id.
|
||||
}%
|
||||
{\ifEtoc@maintoctotoc
|
||||
\toc@chapter{\contentsname} %<-space from original
|
||||
\else
|
||||
\chapter*{\contentsname}\prw@mkboth{\contentsname} % id.
|
||||
\fi
|
||||
}%
|
||||
\else
|
||||
\etocifisstarred
|
||||
{\@nameuse{\@tocextra}*{\contentsname\prw@mkboth{\contentsname}} %<-space
|
||||
}
|
||||
{\ifEtoc@maintoctotoc
|
||||
\toc@section{\@tocextra}{\contentsname} %<-space from original
|
||||
\else
|
||||
\@nameuse{\@tocextra}*{\contentsname\prw@mkboth{\contentsname}} % id.
|
||||
\fi
|
||||
}%
|
||||
\fi
|
||||
}%
|
||||
\@ifclassloaded{memoir}
|
||||
{}
|
||||
{% memoir not loaded
|
||||
\@ifpackageloaded{tocloft}
|
||||
{\if@cftnctoc\else
|
||||
\ifEtoc@keeporiginaltoc
|
||||
\else
|
||||
\AtBeginDocument{\let\tableofcontents\etoctableofcontents}%
|
||||
\fi
|
||||
\fi }
|
||||
{\AtBeginDocument
|
||||
{\@ifpackageloaded{tocloft}
|
||||
{\if@cftnctoc\else
|
||||
\PackageWarningNoLine {etoc}
|
||||
{Package `tocloft' was loaded after `etoc'.\MessageBreak
|
||||
To prevent it from overwriting \protect\tableofcontents, it will\MessageBreak
|
||||
be tricked into believing to have been loaded with its\MessageBreak
|
||||
option `titles'. \space But this will cause the `tocloft'\MessageBreak
|
||||
customization of the titles of the main list of figures\MessageBreak
|
||||
and list of tables to not apply either.\MessageBreak
|
||||
You should load `tocloft' before `etoc'.}%
|
||||
\AtEndDocument{\PackageWarning{etoc}
|
||||
{Please load `tocloft' before `etoc'!\@gobbletwo}}%
|
||||
\fi
|
||||
\@cftnctoctrue }%
|
||||
{}%
|
||||
}%
|
||||
}%
|
||||
}
|
||||
\@ifclassloaded{memoir}
|
||||
{}
|
||||
{% memoir not loaded
|
||||
\AtBeginDocument{%
|
||||
\@ifpackageloaded{tocloft}
|
||||
{%
|
||||
\def\etocclasstocstyle{%
|
||||
\etoctocloftstyle
|
||||
\Etoc@classstyletrue
|
||||
}%
|
||||
\ifEtoc@etocstyle
|
||||
\ifEtoc@classstyle
|
||||
\etocclasstocstyle
|
||||
\Etoc@etocstyletrue
|
||||
\fi
|
||||
\else
|
||||
\ifEtoc@classstyle
|
||||
\etocclasstocstyle
|
||||
\fi
|
||||
\fi
|
||||
}%
|
||||
{% no tocloft
|
||||
\@ifpackageloaded {tocbibind}
|
||||
{\if@dotoctoc
|
||||
\def\etocclasstocstyle{%
|
||||
\etoctocbibindstyle
|
||||
\Etoc@classstyletrue
|
||||
}%
|
||||
\ifEtoc@etocstyle
|
||||
\ifEtoc@classstyle
|
||||
\etocclasstocstyle
|
||||
\Etoc@etocstyletrue
|
||||
\fi
|
||||
\else
|
||||
\ifEtoc@classstyle
|
||||
\etocclasstocstyle
|
||||
\fi
|
||||
\fi
|
||||
\ifEtoc@keeporiginaltoc
|
||||
\else
|
||||
\let\tableofcontents\etoctableofcontents
|
||||
\fi
|
||||
}%
|
||||
{}%
|
||||
}%
|
||||
\@ifpackageloaded{tocbibind}
|
||||
{% tocbibind, perhaps with tocloft
|
||||
\if@dotoctoc
|
||||
\ifEtoc@keeporiginaltoc
|
||||
\else
|
||||
\let\tableofcontents\etoctableofcontents
|
||||
\fi
|
||||
\etocsetup{maintoctotoc,localtoctotoc}%
|
||||
\PackageInfo{etoc}{%
|
||||
Setting (or re-setting) the options `maintoctotoc' and\MessageBreak
|
||||
`localtoctotoc' to true as tocbibind was detected and\MessageBreak
|
||||
found to be configured for `TOC to toc'.\MessageBreak
|
||||
Reported at begin document}%
|
||||
\fi
|
||||
\if@dotoclof
|
||||
\ifEtoc@lof
|
||||
\etocsetup{localloftotoc}%
|
||||
\PackageInfo{etoc}{%
|
||||
Setting (or re-setting) `localloftotoc=true' as the\MessageBreak
|
||||
package tocbibind was detected and is configured for\MessageBreak
|
||||
`LOF to toc'. Reported at begin document}%
|
||||
\fi
|
||||
\fi
|
||||
\if@dotoclot
|
||||
\ifEtoc@lot
|
||||
\etocsetup{locallottotoc}%
|
||||
\PackageInfo{etoc}{%
|
||||
Setting (or re-setting) `locallottotoc=true' as the\MessageBreak
|
||||
package tocbibind was detected and is configured for\MessageBreak
|
||||
`LOT to toc'. Reported at begin document}%
|
||||
\fi
|
||||
\fi
|
||||
}% end of tocbibind branch
|
||||
{}%
|
||||
}% end of at begin document
|
||||
}% end of not with memoir branch
|
||||
\def\Etoc@addtocontents #1#2{%
|
||||
\addtocontents {toc}{%
|
||||
\protect\contentsline{#1}{#2}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}%
|
||||
\ifdefined\protected@file@percent\protected@file@percent\fi
|
||||
}%
|
||||
}
|
||||
\def\Etoc@addcontentsline@ #1#2#3{%
|
||||
\@namedef{toclevel@#1}{#3}\addcontentsline {toc}{#1}{#2}%
|
||||
}
|
||||
\DeclareRobustCommand*{\etoctoccontentsline}
|
||||
{\@ifstar{\Etoc@addcontentsline@}{\Etoc@addtocontents}}
|
||||
\def\Etoc@addtocontents@immediately#1#2{%
|
||||
\begingroup
|
||||
\let\Etoc@originalwrite\write
|
||||
\def\write{\immediate\Etoc@originalwrite}%
|
||||
\Etoc@addtocontents{#1}{#2}%
|
||||
\endgroup
|
||||
}
|
||||
\def\Etoc@addcontentsline@@immediately#1#2#3{%
|
||||
\begingroup
|
||||
\let\Etoc@originalwrite\write
|
||||
\def\write{\immediate\Etoc@originalwrite}%
|
||||
\Etoc@addcontentsline@{#1}{#2}{#3}%
|
||||
\endgoroup
|
||||
}
|
||||
\DeclareRobustCommand*{\etocimmediatetoccontentsline}
|
||||
{\@ifstar{\Etoc@addcontentsline@@immediately}{\Etoc@addtocontents@immediately}}
|
||||
\def\Etoc@storetocdepth {\xdef\Etoc@savedtocdepth{\number\c@tocdepth}}
|
||||
\def\Etoc@restoretocdepth {\global\c@tocdepth\Etoc@savedtocdepth\relax}
|
||||
\def\etocobeytoctocdepth {\def\etoc@settocdepth
|
||||
{\afterassignment\Etoc@@nottoodeep \global\c@tocdepth}}
|
||||
\def\Etoc@@nottoodeep {\ifnum\Etoc@savedtocdepth<\c@tocdepth
|
||||
\global\c@tocdepth\Etoc@savedtocdepth\relax\fi }
|
||||
\def\etocignoretoctocdepth {\let\etoc@settocdepth\@gobble }
|
||||
\def\etocsettocdepth {\futurelet\Etoc@nexttoken\Etoc@set@tocdepth }
|
||||
\def\Etoc@set@tocdepth {\ifx\Etoc@nexttoken\bgroup
|
||||
\expandafter\Etoc@set@tocdepth@
|
||||
\else\expandafter\Etoc@set@toctocdepth
|
||||
\fi }
|
||||
\def\Etoc@set@tocdepth@ #1{\@ifundefined {Etoc@#1@@}
|
||||
{\PackageWarning{etoc}
|
||||
{Unknown sectioning unit #1, \protect\etocsettocdepth\space ignored}}
|
||||
{\global\c@tocdepth\csname Etoc@#1@@\endcsname}%
|
||||
}
|
||||
\def\Etoc@set@toctocdepth #1#{\Etoc@set@toctocdepth@ }
|
||||
\def\Etoc@set@toctocdepth@ #1{%
|
||||
\@ifundefined{Etoc@#1@@}%
|
||||
{\PackageWarning{etoc}
|
||||
{Unknown sectioning depth #1, \protect\etocsettocdepth.toc ignored}}%
|
||||
{\addtocontents {toc}
|
||||
{\protect\etoc@settocdepth\expandafter\protect\csname Etoc@#1@@\endcsname}}%
|
||||
}
|
||||
\def\etocimmediatesettocdepth #1#{\Etoc@set@toctocdepth@immediately}
|
||||
\def\Etoc@set@toctocdepth@immediately #1{%
|
||||
\@ifundefined{Etoc@#1@@}%
|
||||
{\PackageWarning{etoc}
|
||||
{Unknown sectioning depth #1, \protect\etocimmediatesettocdepth.toc ignored}}%
|
||||
{\begingroup
|
||||
\let\Etoc@originalwrite\write
|
||||
\def\write{\immediate\Etoc@originalwrite}%
|
||||
\addtocontents {toc}
|
||||
{\protect\etoc@settocdepth\expandafter\protect
|
||||
\csname Etoc@#1@@\endcsname}%
|
||||
\endgroup
|
||||
}%
|
||||
}
|
||||
\def\etocdepthtag #1#{\Etoc@depthtag }
|
||||
\def\Etoc@depthtag #1{\addtocontents {toc}{\protect\etoc@depthtag {#1}}}
|
||||
\def\etocimmediatedepthtag #1#{\Etoc@depthtag@immediately }
|
||||
\def\Etoc@depthtag@immediately #1{%
|
||||
\begingroup
|
||||
\let\Etoc@originalwrite\write
|
||||
\def\write{\immediate\Etoc@originalwrite}%
|
||||
\addtocontents {toc}{\protect\etoc@depthtag {#1}}%
|
||||
\endgroup
|
||||
}
|
||||
\def\etocignoredepthtags {\let\etoc@depthtag \@gobble }
|
||||
\def\etocobeydepthtags {\let\etoc@depthtag \Etoc@depthtag@ }
|
||||
\def\Etoc@depthtag@ #1{\@ifundefined{Etoc@depthof@#1}%
|
||||
{}% ignore in silence if tag has no associated depth
|
||||
{\afterassignment\Etoc@@nottoodeep
|
||||
\global\c@tocdepth\csname Etoc@depthof@#1\endcsname}%
|
||||
}
|
||||
\def\etocsettagdepth #1#2{\@ifundefined{Etoc@#2@@}%
|
||||
{\PackageWarning{etoc}
|
||||
{Unknown sectioning depth #2, \protect\etocsettagdepth\space ignored}}%
|
||||
{\@namedef{Etoc@depthof@#1}{\@nameuse{Etoc@#2@@}}}%
|
||||
}
|
||||
\def\Etoc@tocvsec@err #1{\PackageError {etoc}
|
||||
{The command \protect#1\space is incompatible with `etoc'}
|
||||
{Use \protect\etocsettocdepth.toc as replacement}%
|
||||
}%
|
||||
\AtBeginDocument {%
|
||||
\@ifclassloaded{memoir}
|
||||
{\PackageInfo {etoc}
|
||||
{Regarding `memoir' class command \protect\settocdepth, consider\MessageBreak
|
||||
\protect\etocsettocdepth.toc as a drop-in replacement with more\MessageBreak
|
||||
capabilities (see `etoc' manual). \space
|
||||
Also, \protect\etocsettocdepth\MessageBreak
|
||||
and \protect\etocsetnexttocdepth\space should be used in place of\MessageBreak
|
||||
`memoir' command \protect\maxtocdepth\@gobble}%
|
||||
}%
|
||||
{\@ifpackageloaded {tocvsec2}{%
|
||||
\def\maxtocdepth #1{\Etoc@tocvsec@err \maxtocdepth }%
|
||||
\def\settocdepth #1{\Etoc@tocvsec@err \settocdepth }%
|
||||
\def\resettocdepth {\@ifstar {\Etoc@tocvsec@err \resettocdepth }%
|
||||
{\Etoc@tocvsec@err \resettocdepth }%
|
||||
}%
|
||||
\def\save@tocdepth #1#2#3{}%
|
||||
\let\reset@tocdepth\relax
|
||||
\let\remax@tocdepth\relax
|
||||
\let\tableofcontents\etoctableofcontents
|
||||
\PackageWarningNoLine {etoc}
|
||||
{Package `tocvsec2' detected and its modification of\MessageBreak
|
||||
\protect\tableofcontents\space reverted. \space Use
|
||||
\protect\etocsettocdepth.toc\MessageBreak as a replacement
|
||||
for `tocvsec2' toc-related commands}%
|
||||
}% tocvsec2 loaded
|
||||
{}% tocvsec2 not loaded
|
||||
}%
|
||||
}%
|
||||
\def\invisibletableofcontents {\etocsetnexttocdepth {-3}\tableofcontents }%
|
||||
\def\invisiblelocaltableofcontents
|
||||
{\etocsetnexttocdepth {-3}\localtableofcontents }%
|
||||
\def\etocsetnexttocdepth #1{%
|
||||
\@ifundefined{Etoc@#1@@}
|
||||
{\PackageWarning{etoc}
|
||||
{Unknown sectioning unit #1, \protect\etocsetnextocdepth\space ignored}}
|
||||
{\Etoc@setnexttocdepth{\csname Etoc@#1@@\endcsname}}%
|
||||
}%
|
||||
\def\Etoc@setnexttocdepth#1{%
|
||||
\def\Etoc@tocdepthset{%
|
||||
\Etoc@tocdepthreset
|
||||
\edef\Etoc@tocdepthreset {%
|
||||
\global\c@tocdepth\the\c@tocdepth\space
|
||||
\global\let\noexpand\Etoc@tocdepthreset\noexpand\@empty
|
||||
}%
|
||||
\global\c@tocdepth#1%
|
||||
\global\let\Etoc@tocdepthset\@empty
|
||||
}%
|
||||
}%
|
||||
\let\Etoc@tocdepthreset\@empty
|
||||
\let\Etoc@tocdepthset \@empty
|
||||
\def\etocsetlocaltop #1#{\Etoc@set@localtop}%
|
||||
\def\Etoc@set@localtop #1{%
|
||||
\@ifundefined{Etoc@#1@@}%
|
||||
{\PackageWarning{etoc}
|
||||
{Unknown sectioning depth #1, \protect\etocsetlocaltop.toc ignored}}%
|
||||
{\addtocontents {toc}
|
||||
{\protect\etoc@setlocaltop\expandafter\protect\csname Etoc@#1@@\endcsname}}%
|
||||
}%
|
||||
\def\etocimmediatesetlocaltop #1#{\Etoc@set@localtop@immediately}%
|
||||
\def\Etoc@set@localtop@immediately #1{%
|
||||
\@ifundefined{Etoc@#1@@}%
|
||||
{\PackageWarning{etoc}
|
||||
{Unknown sectioning depth #1, \protect\etocimmediatesetlocaltop.toc ignored}}%
|
||||
{\begingroup
|
||||
\let\Etoc@originalwrite\write
|
||||
\def\write{\immediate\Etoc@originalwrite}%
|
||||
\addtocontents {toc}
|
||||
{\protect\etoc@setlocaltop\expandafter\protect
|
||||
\csname Etoc@#1@@\endcsname}%
|
||||
\endgroup
|
||||
}%
|
||||
}%
|
||||
\def\etoc@setlocaltop #1{%
|
||||
\ifnum#1=\Etoc@maxlevel
|
||||
\Etoc@skipthisonetrue
|
||||
\else
|
||||
\Etoc@skipthisonefalse
|
||||
\global\let\Etoc@level #1%
|
||||
\global\let\Etoc@virtualtop #1%
|
||||
\ifEtoc@localtoc
|
||||
\ifEtoc@stoptoc
|
||||
\Etoc@skipthisonetrue
|
||||
\else
|
||||
\ifEtoc@notactive
|
||||
\Etoc@skipthisonetrue
|
||||
\else
|
||||
\unless\ifnum\Etoc@level>\etoclocaltop
|
||||
\Etoc@skipthisonetrue
|
||||
\global\Etoc@stoptoctrue
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\let\Etoc@next\@empty
|
||||
\ifEtoc@skipthisone
|
||||
\else
|
||||
\ifnum\Etoc@level>\c@tocdepth
|
||||
\else
|
||||
\ifEtoc@standardlines
|
||||
\else
|
||||
\let\Etoc@next\Etoc@setlocaltop@doendsandbegin
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\Etoc@next
|
||||
}%
|
||||
\def\Etoc@setlocaltop@doendsandbegin{%
|
||||
\Etoc@doendsandbegin
|
||||
\global\Etoc@skipprefixfalse
|
||||
}
|
||||
\addtocontents {toc}{\protect\@ifundefined{etoctocstyle}%
|
||||
{\let\protect\etoc@startlocaltoc\protect\@gobble
|
||||
\let\protect\etoc@settocdepth\protect\@gobble
|
||||
\let\protect\etoc@depthtag\protect\@gobble
|
||||
\let\protect\etoc@setlocaltop\protect\@gobble}{}}%
|
||||
\def\etocstandardlines {\Etoc@standardlinestrue}
|
||||
\def\etoctoclines {\Etoc@standardlinesfalse}
|
||||
\etocdefaultlines
|
||||
\etocstandardlines
|
||||
\def\etocstandarddisplaystyle{%
|
||||
\PackageWarningNoLine{etoc}{%
|
||||
\string\etocstandarddisplaystyle \on@line\MessageBreak
|
||||
is deprecated. \space Please use \string\etocclasstocstyle}%
|
||||
}
|
||||
\expandafter\def\expandafter\etocclasstocstyle\expandafter{%
|
||||
\etocclasstocstyle
|
||||
\Etoc@classstyletrue
|
||||
}
|
||||
\def\etocetoclocaltocstyle{\Etoc@etocstyletrue}
|
||||
\def\etocusertocstyle{\Etoc@etocstylefalse}
|
||||
\etocclasstocstyle
|
||||
\etocetoclocaltocstyle
|
||||
\etocobeytoctocdepth
|
||||
\etocobeydepthtags
|
||||
\let\etocbeforetitlehook \@empty
|
||||
\let\etocaftertitlehook \@empty
|
||||
\let\etocaftercontentshook \@empty
|
||||
\let\etocaftertochook \@empty
|
||||
\def\etockeeporiginaltableofcontents
|
||||
{\Etoc@keeporiginaltoctrue\let\tableofcontents\etocoriginaltableofcontents}%
|
||||
\endinput
|
||||
%%
|
||||
%% End of file `etoc.sty'.
|
||||
19
Doc/latex/files.tex
Normal file
19
Doc/latex/files.tex
Normal file
@@ -0,0 +1,19 @@
|
||||
\doxysection{File List}
|
||||
Here is a list of all documented files with brief descriptions\+:\begin{DoxyCompactList}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{____general__flash_8h_source}{\+\_\+\+\_\+general\+\_\+flash.\+h}} }{\pageref{____general__flash_8h_source}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{____general__spi_8h_source}{\+\_\+\+\_\+general\+\_\+spi.\+h}} }{\pageref{____general__spi_8h_source}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{____general__tim_8h_source}{\+\_\+\+\_\+general\+\_\+tim.\+h}} }{\pageref{____general__tim_8h_source}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{____general__uart_8h_source}{\+\_\+\+\_\+general\+\_\+uart.\+h}} }{\pageref{____general__uart_8h_source}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}} }{\pageref{bit__access_8h_source}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{general__gpio_8h}{general\+\_\+gpio.\+h}} \\*Заголовочный файл для модуля инициализации портов }{\pageref{general__gpio_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{mylibs__config_8h}{mylibs\+\_\+config.\+h}} \\*Конфигурации для библиотек My\+Libs }{\pageref{mylibs__config_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{mylibs__defs_8h}{mylibs\+\_\+defs.\+h}} \\*Заголочный файл для дефайнов библиотеки My\+Libs\+General }{\pageref{mylibs__defs_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{mylibs__include_8h}{mylibs\+\_\+include.\+h}} \\*Заголочный файл для всех библиотек }{\pageref{mylibs__include_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{trace_8h}{trace.\+h}} \\*Заголочный файл для работы с трассировкой }{\pageref{trace_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{trackers_8h}{trackers.\+h}} \\*Заголочный файл для работы с трекерами \doxylink{group___t_r_a_c_k_e_r_s}{Trackers defines} }{\pageref{trackers_8h}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/\mbox{\hyperlink{____general__flash_8c_source}{\+\_\+\+\_\+general\+\_\+flash.\+c}} }{\pageref{____general__flash_8c_source}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/\mbox{\hyperlink{____general__spi_8c_source}{\+\_\+\+\_\+general\+\_\+spi.\+c}} }{\pageref{____general__spi_8c_source}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/\mbox{\hyperlink{____general__tim_8c_source}{\+\_\+\+\_\+general\+\_\+tim.\+c}} }{\pageref{____general__tim_8c_source}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/\mbox{\hyperlink{____general__uart_8c_source}{\+\_\+\+\_\+general\+\_\+uart.\+c}} }{\pageref{____general__uart_8c_source}}{}
|
||||
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/\mbox{\hyperlink{general__gpio_8c}{general\+\_\+gpio.\+c}} \\*Модуль для инициализации портов }{\pageref{general__gpio_8c}}{}
|
||||
\end{DoxyCompactList}
|
||||
46
Doc/latex/general__gpio_8c.tex
Normal file
46
Doc/latex/general__gpio_8c.tex
Normal file
@@ -0,0 +1,46 @@
|
||||
\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/general\+\_\+gpio.c File Reference}
|
||||
\hypertarget{general__gpio_8c}{}\label{general__gpio_8c}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_gpio.c@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_gpio.c}}
|
||||
|
||||
|
||||
Модуль для инициализации портов.
|
||||
|
||||
|
||||
{\ttfamily \#include "{}general\+\_\+gpio.\+h"{}}\newline
|
||||
\doxysubsubsection*{Functions}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}{GPIO\+\_\+\+Clock\+\_\+\+Enable}} (GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}GPIOx)
|
||||
\begin{DoxyCompactList}\small\item\em Включить тактирование порта GPIO. \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gac936453c7a0841c0b17bcfdae4958084}{GPIO\+\_\+\+LED\+\_\+\+Init}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led, GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}GPIOx, uint32\+\_\+t GPIO\+\_\+\+PIN\+\_\+X, uint8\+\_\+t LED\+\_\+\+Active\+Level)
|
||||
\begin{DoxyCompactList}\small\item\em Инициализировать светодиод (структуру светодиода) \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ga4b9572949326b050694cd55d0a7e5f6c}{GPIO\+\_\+\+LED\+\_\+\+On}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led)
|
||||
\begin{DoxyCompactList}\small\item\em Включить светодиод \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaadda2d4f021390a4e392210a5ace5357}{GPIO\+\_\+\+LED\+\_\+\+Off}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led)
|
||||
\begin{DoxyCompactList}\small\item\em Выключить светодиод \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gae78b570447d55a462a679a89dbaa8ea2}{GPIO\+\_\+\+LED\+\_\+\+Set}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led, uint8\+\_\+t led\+\_\+state)
|
||||
\begin{DoxyCompactList}\small\item\em Выставить светодиод по переменной \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaf22f44ecaf6a1932b47edc5a845b03a9}{GPIO\+\_\+\+LED\+\_\+\+Blink\+\_\+\+Start}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led, uint32\+\_\+t period)
|
||||
\begin{DoxyCompactList}\small\item\em Активировать моргание светодиодом \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaa00f20021781464af3dfe74aa3e59a0a}{GPIO\+\_\+\+LED\+\_\+\+Fading\+\_\+\+Start}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led, uint32\+\_\+t period)
|
||||
\begin{DoxyCompactList}\small\item\em Активировать моргание светодиодом \end{DoxyCompactList}\item
|
||||
void \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gad6e6189824406c4d472b6340c7f19bb2}{GPIO\+\_\+\+LED\+\_\+\+Dynamic\+\_\+\+Handle}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led)
|
||||
\begin{DoxyCompactList}\small\item\em Управление динамическими режимами свечения светодиода \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7}{GPIO\+\_\+\+Switch\+\_\+\+Init}} (\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}sw, GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}GPIOx, uint32\+\_\+t GPIO\+\_\+\+PIN\+\_\+X, uint8\+\_\+t SW\+\_\+\+Active\+Level)
|
||||
\begin{DoxyCompactList}\small\item\em Инициализировать кнопку (структуру кнопки) \end{DoxyCompactList}\item
|
||||
uint8\+\_\+t \mbox{\hyperlink{group___g_p_i_o___s_w_i_t_c_h_ga4b6b8be19a9265bfee6b2bb8a68e988f}{GPIO\+\_\+\+Read\+\_\+\+Switch}} (\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}sw)
|
||||
\begin{DoxyCompactList}\small\item\em Считать состоянии кнопки \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsection{Detailed Description}
|
||||
Модуль для инициализации портов.
|
||||
|
||||
Реализация функций для работы с GPIO\+:
|
||||
\begin{DoxyItemize}
|
||||
\item Включение тактирования портов
|
||||
\item Инициализация светодиодов и кнопок
|
||||
\item Управление светодиодами\+: включение, выключение, моргание, плавное затухание
|
||||
\item Чтение состояния кнопок с фильтром от дребезга
|
||||
\end{DoxyItemize}
|
||||
|
||||
Definition in file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}.
|
||||
|
||||
330
Doc/latex/general__gpio_8c_source.tex
Normal file
330
Doc/latex/general__gpio_8c_source.tex
Normal file
@@ -0,0 +1,330 @@
|
||||
\doxysection{general\+\_\+gpio.\+c}
|
||||
\hypertarget{general__gpio_8c_source}{}\label{general__gpio_8c_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_gpio.c@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_gpio.c}}
|
||||
\mbox{\hyperlink{general__gpio_8c}{Go to the documentation of this file.}}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00001}00001\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00002}00002\ \textcolor{comment}{**************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00003}00003\ \textcolor{comment}{*\ @file\ general\_gpio.c}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Модуль\ для\ инициализации\ портов.}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00005}00005\ \textcolor{comment}{**************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00006}00006\ \textcolor{comment}{*\ @details\ Реализация\ функций\ для\ работы\ с\ GPIO:}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00007}00007\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ -\/\ Включение\ тактирования\ портов}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00008}00008\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ -\/\ Инициализация\ светодиодов\ и\ кнопок}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00009}00009\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ -\/\ Управление\ светодиодами:\ включение,\ выключение,\ моргание,\ плавное\ затухание}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00010}00010\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ -\/\ Чтение\ состояния\ кнопок\ с\ фильтром\ от\ дребезга}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00011}00011\ \textcolor{comment}{***************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00012}00012\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{general__gpio_8h}{general\_gpio.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00013}00013\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00014}00014\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00015}00015\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/GPIO\ INIT\ FUNCTIONS-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00016}00016\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00017}00017\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00018}00018\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00019}00019\ \textcolor{comment}{\ \ *\ @brief\ Включить\ тактирование\ порта\ GPIO}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00020}00020\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00021}\mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}{00021}}\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}{GPIO\_Clock\_Enable}}(GPIO\_TypeDef\ *GPIOx)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00022}00022\ \{\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00023}00023\ \ \ HAL\_StatusTypeDef\ status\ =\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00024}00024\ \ \ \textcolor{comment}{//\ choose\ port\ for\ enable\ clock}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00025}00025\ \ \ \textcolor{keywordflow}{if}\ (GPIOx==GPIOA)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00026}00026\ \ \ \ \ \_\_HAL\_RCC\_GPIOA\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00027}00027\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (GPIOx==GPIOB)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00028}00028\ \ \ \ \ \_\_HAL\_RCC\_GPIOB\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00029}00029\ \textcolor{preprocessor}{\#ifdef\ GPIOC}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00030}00030\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (GPIOx==GPIOC)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00031}00031\ \ \ \ \ \_\_HAL\_RCC\_GPIOC\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00032}00032\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00033}00033\ \textcolor{preprocessor}{\#ifdef\ GPIOD}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00034}00034\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (GPIOx==GPIOD)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00035}00035\ \ \ \ \ \_\_HAL\_RCC\_GPIOD\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00036}00036\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00037}00037\ \textcolor{preprocessor}{\#ifdef\ GPIOE}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00038}00038\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (GPIOx==GPIOE)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00039}00039\ \ \ \ \ \_\_HAL\_RCC\_GPIOE\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00040}00040\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00041}00041\ \textcolor{preprocessor}{\#ifdef\ GPIOF}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00042}00042\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (GPIOx==GPIOF)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00043}00043\ \ \ \ \ \_\_HAL\_RCC\_GPIOF\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00044}00044\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00045}00045\ \textcolor{preprocessor}{\#ifdef\ GPIOH}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00046}00046\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (GPIOx==GPIOF)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00047}00047\ \ \ \ \ \_\_HAL\_RCC\_GPIOH\_CLK\_ENABLE();}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00048}00048\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00049}00049\ \ \ \textcolor{keywordflow}{else}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00050}00050\ \ \ \ \ status\ =\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00051}00051\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00052}00052\ \ \ \textcolor{keywordflow}{return}\ status;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00053}00053\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00054}00054\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00055}00055\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/GPIO\ INIT\ FUNCTIONS-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00056}00056\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00057}00057\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00058}00058\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00059}00059\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00060}00060\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/GPIO\ LED\ FUNCTIONS-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00061}00061\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00062}00062\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00063}00063\ \textcolor{comment}{\ \ *\ @brief\ \ Инициализировать\ светодиод\ (структуру\ светодиода)}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00064}00064\ \textcolor{comment}{\ \ *\ @param\ led\ \ \ \ \ \ \ \ \ \ \ \ \ \ Указатель\ на\ структуру\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00065}00065\ \textcolor{comment}{\ \ *\ @param\ GPIOx\ \ \ \ \ \ \ \ \ \ \ \ Указатель\ на\ структуру\ порта\ для\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00066}00066\ \textcolor{comment}{\ \ *\ @param\ GPIO\_PIN\_X\ \ \ \ \ \ \ Пин\ для\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00067}00067\ \textcolor{comment}{\ \ *\ @param\ LED\_ActiveLevel\ \ Состояния\ пина,\ при\ котором\ светодиод\ будет\ включен}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00068}00068\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00069}\mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gac936453c7a0841c0b17bcfdae4958084}{00069}}\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gac936453c7a0841c0b17bcfdae4958084}{GPIO\_LED\_Init}}(\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ *led,\ GPIO\_TypeDef\ *GPIOx,\ uint32\_t\ GPIO\_PIN\_X,\ uint8\_t\ LED\_ActiveLevel)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00070}00070\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00071}00071\ \ \ \textcolor{keywordflow}{if}(\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae7d1cbb9075ee4b830342fd564d96be0}{check\_null\_ptr\_2}}(led,\ GPIOx))}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00072}00072\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00073}00073\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00074}00074\ \ \ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf}{LED\_Port}}\ \ \ \ \ \ \ =\ GPIOx;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00075}00075\ \ \ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a684ff60e4c94daf2221524cdc6fcc978}{LED\_Pin}}\ \ \ \ \ \ \ \ =\ GPIO\_PIN\_X;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00076}00076\ \ \ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_abe9aadc0b28d042267f7155e187a1816}{LED\_ActiveLvl}}\ \ =\ LED\_ActiveLevel;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00077}00077\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00078}00078\ \ \ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaadda2d4f021390a4e392210a5ace5357}{GPIO\_LED\_Off}}(led);}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00079}00079\ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00080}00080\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00081}00081\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00082}00082\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00083}00083\ \textcolor{comment}{\ \ *\ @brief\ \ Включить\ светодиод\ }}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00084}00084\ \textcolor{comment}{\ \ *\ @param\ \ led\ Указатель\ на\ структуру\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00085}00085\ \textcolor{comment}{\ \ *\ @return\ HAL\ Status}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00086}00086\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00087}\mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ga4b9572949326b050694cd55d0a7e5f6c}{00087}}\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ga4b9572949326b050694cd55d0a7e5f6c}{GPIO\_LED\_On}}(\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ *led)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00088}00088\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00089}00089\ \ \ \textcolor{keywordflow}{if}(\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga0b75f0bcf066acdf797b8e6730c52f86}{check\_null\_ptr\_1}}(led))}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00090}00090\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00091}00091\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00092}00092\ \ \ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_ad28d93023a00e3c5669bd3deda122435}{state}}\ =\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea}{LED\_IS\_ON}};}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00093}00093\ \ \ \textcolor{keywordflow}{if}(led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf}{LED\_Port}}\ !=\ NULL)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00094}00094\ \ \ \ \ HAL\_GPIO\_WritePin(led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf}{LED\_Port}},\ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a684ff60e4c94daf2221524cdc6fcc978}{LED\_Pin}},\ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_abe9aadc0b28d042267f7155e187a1816}{LED\_ActiveLvl}});}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00095}00095\ \ \ \textcolor{keywordflow}{else}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00096}00096\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00097}00097\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00098}00098\ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00099}00099\ \}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00100}00100\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00101}00101\ \textcolor{comment}{\ \ *\ @brief\ \ Выключить\ светодиод\ }}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00102}00102\ \textcolor{comment}{\ \ *\ @param\ \ led\ Указатель\ на\ структуру\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00103}00103\ \textcolor{comment}{\ \ *\ @return\ HAL\ Status}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00104}00104\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00105}\mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaadda2d4f021390a4e392210a5ace5357}{00105}}\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaadda2d4f021390a4e392210a5ace5357}{GPIO\_LED\_Off}}(\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ *led)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00106}00106\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00107}00107\ \ \ \textcolor{keywordflow}{if}(\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga0b75f0bcf066acdf797b8e6730c52f86}{check\_null\_ptr\_1}}(led))}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00108}00108\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00109}00109\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00110}00110\ \ \ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_ad28d93023a00e3c5669bd3deda122435}{state}}\ =\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae}{LED\_IS\_OFF}};}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00111}00111\ \ \ \textcolor{keywordflow}{if}(led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf}{LED\_Port}}\ !=\ NULL)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00112}00112\ \ \ \ \ HAL\_GPIO\_WritePin(led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf}{LED\_Port}},\ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a684ff60e4c94daf2221524cdc6fcc978}{LED\_Pin}},\ !led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_abe9aadc0b28d042267f7155e187a1816}{LED\_ActiveLvl}});}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00113}00113\ \ \ \textcolor{keywordflow}{else}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00114}00114\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00115}00115\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00116}00116\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00117}00117\ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00118}00118\ \}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00119}00119\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00120}00120\ \textcolor{comment}{\ \ *\ @brief\ \ Выставить\ светодиод\ по\ переменной}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00121}00121\ \textcolor{comment}{\ \ *\ @param\ \ led\ \ \ \ \ \ \ \ Указатель\ на\ структуру\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00122}00122\ \textcolor{comment}{\ \ *\ @param\ \ led\_state\ \ Состояние\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00123}00123\ \textcolor{comment}{\ \ *\ @return\ HAL\ Status}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00124}00124\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00125}\mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gae78b570447d55a462a679a89dbaa8ea2}{00125}}\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gae78b570447d55a462a679a89dbaa8ea2}{GPIO\_LED\_Set}}(\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ *led,\ uint8\_t\ led\_state)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00126}00126\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00127}00127\ \ \ \textcolor{keywordflow}{if}(\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga0b75f0bcf066acdf797b8e6730c52f86}{check\_null\_ptr\_1}}(led))}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00128}00128\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00129}00129\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00130}00130\ \ \ \textcolor{keywordflow}{if}(led\_state)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00131}00131\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00132}00132\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ga4b9572949326b050694cd55d0a7e5f6c}{GPIO\_LED\_On}}(led);}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00133}00133\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00134}00134\ \ \ \textcolor{keywordflow}{else}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00135}00135\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00136}00136\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaadda2d4f021390a4e392210a5ace5357}{GPIO\_LED\_Off}}(led);}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00137}00137\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00138}00138\ \}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00139}00139\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00140}00140\ \textcolor{comment}{\ \ *\ @brief\ \ Активировать\ моргание\ светодиодом}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00141}00141\ \textcolor{comment}{\ \ *\ @param\ \ led\ Указатель\ на\ структуру\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00142}00142\ \textcolor{comment}{\ \ *\ @param\ \ period\ Период\ плавного\ моргания\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00143}00143\ \textcolor{comment}{\ \ *\ @return\ HAL\ Status}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00144}00144\ \textcolor{comment}{\ \ *\ @details\ \ Функция\ ставит\ режим\ моргания,\ который\ после\ управляется\ в\ @ref\ GPIO\_LED\_Dynamic\_Handle}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00145}00145\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00146}\mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaf22f44ecaf6a1932b47edc5a845b03a9}{00146}}\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaf22f44ecaf6a1932b47edc5a845b03a9}{GPIO\_LED\_Blink\_Start}}(\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ *led,\ uint32\_t\ period)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00147}00147\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00148}00148\ \ \ \textcolor{keywordflow}{if}(\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae7d1cbb9075ee4b830342fd564d96be0}{check\_null\_ptr\_2}}(led,\ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf}{LED\_Port}}))}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00149}00149\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;\ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00150}00150\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00151}00151\ \ \ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_ad28d93023a00e3c5669bd3deda122435}{state}}\ =\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb}{LED\_IS\_BLINKING}};}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00152}00152\ \ \ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a6cc026931a4681732f9a329ae03098ec}{LED\_Period}}\ =\ period;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00153}00153\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00154}00154\ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00155}00155\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00156}00156\ \ \ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00157}00157\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00158}00158\ \textcolor{comment}{\ \ *\ @brief\ \ Активировать\ моргание\ светодиодом}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00159}00159\ \textcolor{comment}{\ \ *\ @param\ \ led\ \ Указатель\ на\ структуру\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00160}00160\ \textcolor{comment}{\ \ *\ @param\ \ period\ Период\ плавного\ моргания\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00161}00161\ \textcolor{comment}{\ \ *\ @return\ HAL\ Status}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00162}00162\ \textcolor{comment}{\ \ *\ @details\ \ Функция\ ставит\ режим\ моргания,\ который\ после\ управляется\ в\ @ref\ GPIO\_LED\_Dynamic\_Handle}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00163}00163\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00164}\mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaa00f20021781464af3dfe74aa3e59a0a}{00164}}\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaa00f20021781464af3dfe74aa3e59a0a}{GPIO\_LED\_Fading\_Start}}(\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ *led,\ uint32\_t\ period)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00165}00165\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00166}00166\ \ \ \textcolor{keywordflow}{if}(\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae7d1cbb9075ee4b830342fd564d96be0}{check\_null\_ptr\_2}}(led,\ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf}{LED\_Port}}))}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00167}00167\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;\ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00168}00168\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00169}00169\ \ \ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_ad28d93023a00e3c5669bd3deda122435}{state}}\ =\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b}{LED\_IS\_FADING}};}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00170}00170\ \ \ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a6cc026931a4681732f9a329ae03098ec}{LED\_Period}}\ =\ period;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00171}00171\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00172}00172\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00173}00173\ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00174}00174\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00175}00175\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00176}00176\ \textcolor{comment}{//uint8\_t\ LED\_PWM\_FADING\_DUTYS[LED\_PWM\_TICKS]\ =\ \{0\ 1\ 2\ 3\ 4\ 5\ 6\ 7\ 8\ 9\ 10\ 11\ 12\ \}}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00177}00177\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00178}00178\ \textcolor{comment}{\ \ *\ @brief\ \ Управление\ динамическими\ режимами\ свечения\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00179}00179\ \textcolor{comment}{\ \ *\ @param\ \ Указатель\ на\ структуру\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00180}00180\ \textcolor{comment}{\ \ *\ @details\ \ Функция\ моргает/плавно\ моргает\ светодиодом\ в\ неблокирующем\ режиме}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00181}00181\ \textcolor{comment}{\ \ *\ Т.е.\ функцию\ надо\ вызывать\ постоянно,\ чтобы\ она\ мониторила\ тики\ }}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00182}00182\ \textcolor{comment}{\ \ *\ и\ в\ нужный\ момент\ переключала\ светодиод}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00183}00183\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00184}\mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gad6e6189824406c4d472b6340c7f19bb2}{00184}}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gad6e6189824406c4d472b6340c7f19bb2}{GPIO\_LED\_Dynamic\_Handle}}(\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ *led)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00185}00185\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00186}00186\ \ \ \textcolor{keywordflow}{if}(\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae7d1cbb9075ee4b830342fd564d96be0}{check\_null\_ptr\_2}}(led,\ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf}{LED\_Port}}))}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00187}00187\ \ \ \ \ \textcolor{keywordflow}{return};}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00188}00188\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00189}00189\ \ \ \textcolor{comment}{/*\ Режим\ моргания\ светодиода\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00190}00190\ \ \ \textcolor{keywordflow}{if}(led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_ad28d93023a00e3c5669bd3deda122435}{state}}\ ==\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb}{LED\_IS\_BLINKING}})}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00191}00191\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00192}00192\ \ \ \ \ uint32\_t\ tickcurrent\ =\ HAL\_GetTick();}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00193}00193\ \ \ \ \ \textcolor{comment}{/*\ Ожидание\ истечения\ периода\ моргания\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00194}00194\ \ \ \ \ \textcolor{keywordflow}{if}((tickcurrent\ -\/\ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a8c43c12787f4a89f4a785f91a979ba68}{tickprev}})\ >\ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a6cc026931a4681732f9a329ae03098ec}{LED\_Period}})}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00195}00195\ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00196}00196\ \ \ \ \ \ \ \textcolor{comment}{/*\ Моргание\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00197}00197\ \ \ \ \ \ \ HAL\_GPIO\_TogglePin(led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf}{LED\_Port}},\ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a684ff60e4c94daf2221524cdc6fcc978}{LED\_Pin}});}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00198}00198\ \ \ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00199}00199\ \ \ \ \ \ \ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a8c43c12787f4a89f4a785f91a979ba68}{tickprev}}\ =\ tickcurrent;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00200}00200\ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00201}00201\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00202}00202\ \ \ \textcolor{comment}{/*\ Режим\ плавного\ моргания\ светодиода\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00203}00203\ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_ad28d93023a00e3c5669bd3deda122435}{state}}\ ==\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b}{LED\_IS\_FADING}})}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00204}00204\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00205}00205\ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{unsigned}\ direction\ =\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00206}00206\ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{int}\ duty\ =\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00207}00207\ \ \ \ \ uint32\_t\ tickcurrent\ =\ HAL\_GetTick();}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00208}00208\ \ \ \ \ \textcolor{comment}{/*\ Ожидание\ момента\ изменения\ яркости\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00209}00209\ \ \ \ \ \textcolor{comment}{/*\ Период\ ШИМ\ 20\ мс,\ поэтому\ менять\ яроксть\ надо\ 40\ раз\ за\ период\ (туда\ обратно)\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00210}00210\ \ \ \ \ \textcolor{keywordflow}{if}((tickcurrent\ -\/\ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a8c43c12787f4a89f4a785f91a979ba68}{tickprev}})\ >\ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a6cc026931a4681732f9a329ae03098ec}{LED\_Period}}/(LED\_PWM\_TICKS*2))}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00211}00211\ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00212}00212\ \ \ \ \ \ \ \textcolor{comment}{/*\ Формирование\ разтухания\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00213}00213\ \ \ \ \ \ \ \textcolor{keywordflow}{if}(direction\ ==\ 0)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00214}00214\ \ \ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00215}00215\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(++duty\ >=\ LED\_PWM\_TICKS)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00216}00216\ \ \ \ \ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00217}00217\ \ \ \ \ \ \ \ \ \ \ direction\ =\ 1;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00218}00218\ \ \ \ \ \ \ \ \ \ \ duty\ =\ LED\_PWM\_TICKS;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00219}00219\ \ \ \ \ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00220}00220\ \ \ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00221}00221\ \ \ \ \ \ \ \textcolor{comment}{/*\ Формирование\ затухания\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00222}00222\ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00223}00223\ \ \ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00224}00224\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(-\/-\/duty\ \ <=\ 0)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00225}00225\ \ \ \ \ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00226}00226\ \ \ \ \ \ \ \ \ \ \ direction\ =\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00227}00227\ \ \ \ \ \ \ \ \ \ \ duty\ =\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00228}00228\ \ \ \ \ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00229}00229\ \ \ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00230}00230\ \ \ \ \ \ \ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a8c43c12787f4a89f4a785f91a979ba68}{tickprev}}\ =\ tickcurrent;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00231}00231\ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00232}00232\ \ \ \ \ \textcolor{comment}{/*\ Формирование\ ШИМ\ для\ изменения\ яркости\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00233}00233\ \ \ \ \ \textcolor{keywordtype}{int}\ duty\_crt\ =\ (duty*duty/LED\_PWM\_TICKS);}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00234}00234\ \ \ \ \ \textcolor{keywordflow}{if}(tickcurrent\%LED\_PWM\_TICKS\ <\ duty\_crt)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00235}00235\ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00236}00236\ \ \ \ \ \ \ HAL\_GPIO\_WritePin(led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf}{LED\_Port}},\ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a684ff60e4c94daf2221524cdc6fcc978}{LED\_Pin}},\ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_abe9aadc0b28d042267f7155e187a1816}{LED\_ActiveLvl}});}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00237}00237\ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00238}00238\ \ \ \ \ \textcolor{keywordflow}{else}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00239}00239\ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00240}00240\ \ \ \ \ \ \ HAL\_GPIO\_WritePin(led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf}{LED\_Port}},\ led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a684ff60e4c94daf2221524cdc6fcc978}{LED\_Pin}},\ !led-\/>\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_abe9aadc0b28d042267f7155e187a1816}{LED\_ActiveLvl}});}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00241}00241\ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00242}00242\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00243}00243\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00244}00244\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/GPIO\ LED\ FUNCTIONS-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00245}00245\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00246}00246\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00247}00247\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00248}00248\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/GPIO\ SW\ FUNCTIONS-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00249}00249\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00250}00250\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00251}00251\ \textcolor{comment}{*\ @brief\ \ Инициализировать\ кнопку\ (структуру\ кнопки)}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00252}00252\ \textcolor{comment}{\ \ *\ @param\ \ sw\ \ \ \ \ \ \ \ \ \ \ \ \ Указатель\ на\ структуру\ кнопки}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00253}00253\ \textcolor{comment}{\ \ *\ @param\ \ GPIOx\ \ \ \ \ \ \ \ \ \ Указатель\ на\ структуру\ порта\ для\ кнопки}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00254}00254\ \textcolor{comment}{\ \ *\ @param\ \ GPIO\_PIN\_X\ \ \ \ \ Пин\ для\ кнопки}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00255}00255\ \textcolor{comment}{\ \ *\ @param\ \ SW\_ActiveLevel\ Состояния\ пина,\ когда\ кнопка\ нажата}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00256}00256\ \textcolor{comment}{\ \ *\ @return\ HAL\ Status}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00257}00257\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00258}\mbox{\hyperlink{group___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7}{00258}}\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7}{GPIO\_Switch\_Init}}(\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\_SwitchTypeDef}}\ *sw,\ GPIO\_TypeDef\ *GPIOx,\ uint32\_t\ GPIO\_PIN\_X,\ uint8\_t\ SW\_ActiveLevel)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00259}00259\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00260}00260\ \ \ \textcolor{keywordflow}{if}(\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae7d1cbb9075ee4b830342fd564d96be0}{check\_null\_ptr\_2}}(sw,\ GPIOx))}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00261}00261\ \ \ \ \ \textcolor{keywordflow}{return}\ HAL\_ERROR;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00262}00262\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00263}00263\ \ \ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_afb369df75a6065fd89ac4ba97d98ab1a}{Sw\_Port}}\ \ \ \ \ \ \ =\ GPIOx;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00264}00264\ \ \ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a63d58d9cba49a5823175585ef2996032}{Sw\_Pin}}\ \ \ \ \ \ \ \ =\ GPIO\_PIN\_X;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00265}00265\ \ \ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a4fadf5ead3ebccad521a52c064eeb405}{Sw\_ActiveLvl}}\ \ =\ SW\_ActiveLevel;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00266}00266\ \ \ \textcolor{keywordflow}{return}\ HAL\_OK;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00267}00267\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00268}00268\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00269}00269\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00270}00270\ \textcolor{comment}{\ \ *\ @brief\ \ Считать\ состоянии\ кнопки\ }}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00271}00271\ \textcolor{comment}{\ \ *\ @param\ \ sw\ \ Указатель\ на\ структуру\ кнопки}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00272}00272\ \textcolor{comment}{\ \ *\ @return\ 1\ -\/\ если\ кнопка\ нажата,\ 0\ -\/\ если\ отжата}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00273}00273\ \textcolor{comment}{\ \ *\ @details\ \ Функция\ включает\ в\ себя\ неблокирующую\ проверку\ на\ дребезг}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00274}00274\ \textcolor{comment}{\ \ *\ Т.е.\ функцию\ надо\ вызывать\ постоянно,\ чтобы\ она\ мониторила\ состояние\ кнопки}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00275}00275\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00276}\mbox{\hyperlink{group___g_p_i_o___s_w_i_t_c_h_ga4b6b8be19a9265bfee6b2bb8a68e988f}{00276}}\ uint8\_t\ \mbox{\hyperlink{group___g_p_i_o___s_w_i_t_c_h_ga4b6b8be19a9265bfee6b2bb8a68e988f}{GPIO\_Read\_Switch}}(\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\_SwitchTypeDef}}\ *sw)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00277}00277\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00278}00278\ \ \ \textcolor{keywordflow}{if}(\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga0b75f0bcf066acdf797b8e6730c52f86}{check\_null\_ptr\_1}}(sw))}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00279}00279\ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00280}00280\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00281}00281\ \ \ \textcolor{keywordflow}{if}(HAL\_GPIO\_ReadPin(sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_afb369df75a6065fd89ac4ba97d98ab1a}{Sw\_Port}},\ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a63d58d9cba49a5823175585ef2996032}{Sw\_Pin}})\ ==\ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a4fadf5ead3ebccad521a52c064eeb405}{Sw\_ActiveLvl}})}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00282}00282\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00283}00283\ \ \ \ \ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a245f1dc811279ce5d4598582db979a89}{Sw\_PrevState}}\ =\ 1;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00284}00284\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00285}00285\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00286}00286\ \ \ \ \ \textcolor{keywordflow}{if}(sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a2600e599a961af2e280c721894df4c06}{Sw\_FilterDelay}})\ \textcolor{comment}{//\ если\ включена\ защита\ от\ дребезга}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00287}00287\ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00288}00288\ \ \ \ \ \ \ \textcolor{keywordflow}{if}(sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a13f97b867ff1a77ef182c9b13d964ca6}{tickprev}}\ ==\ 0)}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00289}00289\ \ \ \ \ \ \ \ \ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a13f97b867ff1a77ef182c9b13d964ca6}{tickprev}}\ =\ HAL\_GetTick();}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00290}00290\ \ \ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00291}00291\ \ \ \ \ \ \ \textcolor{keywordflow}{if}((HAL\_GetTick()\ -\/\ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a13f97b867ff1a77ef182c9b13d964ca6}{tickprev}})\ >=\ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a2600e599a961af2e280c721894df4c06}{Sw\_FilterDelay}})}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00292}00292\ \ \ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00293}00293\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(HAL\_GPIO\_ReadPin(sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_afb369df75a6065fd89ac4ba97d98ab1a}{Sw\_Port}},\ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a63d58d9cba49a5823175585ef2996032}{Sw\_Pin}})\ ==\ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a4fadf5ead3ebccad521a52c064eeb405}{Sw\_ActiveLvl}})}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00294}00294\ \ \ \ \ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00295}00295\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 1;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00296}00296\ \ \ \ \ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00297}00297\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00298}00298\ \ \ \ \ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00299}00299\ \ \ \ \ \ \ \ \ \ \ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a13f97b867ff1a77ef182c9b13d964ca6}{tickprev}}\ =\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00300}00300\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00301}00301\ \ \ \ \ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00302}00302\ \ \ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00303}00303\ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00304}00304\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{comment}{//\ если\ нет\ защиты\ от\ дребезга}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00305}00305\ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00306}00306\ \ \ \ \ \ \ \textcolor{keywordflow}{if}(HAL\_GPIO\_ReadPin(sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_afb369df75a6065fd89ac4ba97d98ab1a}{Sw\_Port}},\ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a63d58d9cba49a5823175585ef2996032}{Sw\_Pin}})\ ==\ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a4fadf5ead3ebccad521a52c064eeb405}{Sw\_ActiveLvl}})}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00307}00307\ \ \ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00308}00308\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 1;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00309}00309\ \ \ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00310}00310\ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00311}00311\ \ \ \ \ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00312}00312\ \ \ \ \ \ \ \ \ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a13f97b867ff1a77ef182c9b13d964ca6}{tickprev}}\ =\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00313}00313\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00314}00314\ \ \ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00315}00315\ \ \ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00316}00316\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00317}00317\ \ \ \textcolor{keywordflow}{else}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00318}00318\ \ \ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00319}00319\ \ \ \ \ sw-\/>\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a245f1dc811279ce5d4598582db979a89}{Sw\_PrevState}}\ =\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00320}00320\ \ \ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00321}00321\ \ \ \textcolor{keywordflow}{return}\ 0;}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00322}00322\ \}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00323}00323\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/GPIO\ SW\ FUNCTIONS-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00324}00324\ \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
|
||||
|
||||
\end{DoxyCode}
|
||||
71
Doc/latex/general__gpio_8h.tex
Normal file
71
Doc/latex/general__gpio_8h.tex
Normal file
@@ -0,0 +1,71 @@
|
||||
\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/general\+\_\+gpio.h File Reference}
|
||||
\hypertarget{general__gpio_8h}{}\label{general__gpio_8h}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_gpio.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_gpio.h}}
|
||||
|
||||
|
||||
Заголовочный файл для модуля инициализации портов.
|
||||
|
||||
|
||||
{\ttfamily \#include "{}mylibs\+\_\+defs.\+h"{}}\newline
|
||||
\doxysubsubsection*{Classes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
struct \mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Структура светодиода \end{DoxyCompactList}\item
|
||||
struct \mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Структура кнопки \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsection*{Macros}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___g_p_i_o___i_n_i_t_ga1d42e219765ec526d99e306638ac0023}{LED\+\_\+\+PWM\+\_\+\+TICKS}}~15
|
||||
\begin{DoxyCompactList}\small\item\em Количество тиков в периоде ШИМ \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___g_p_i_o___i_n_i_t_gaf2e697ac60e05813d45ea2c9c9e79c25}{LED\+\_\+\+ON}}~1
|
||||
\begin{DoxyCompactList}\small\item\em Состояние пина для включения светодиода \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___g_p_i_o___i_n_i_t_ga80700bb63bd56ebabbb4728aa433fd29}{LED\+\_\+\+OFF}}~0
|
||||
\begin{DoxyCompactList}\small\item\em Состояние пина для выключения светодиода \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___g_p_i_o___i_n_i_t_ga19d9e3aced311179a2914e0c9b13d0f9}{SW\+\_\+\+ON}}~1
|
||||
\begin{DoxyCompactList}\small\item\em Состояние пина при нажатой кнопке \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___g_p_i_o___i_n_i_t_gacd8900c9ec0efde1da3253b718574067}{SW\+\_\+\+OFF}}~0
|
||||
\begin{DoxyCompactList}\small\item\em Состояние пина при отжатой кнопке \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga34242874b455a72aa6e25841678ed105}{TIM\+\_\+\+Alternate\+\_\+\+Mapping}}(INSTANCE)
|
||||
\begin{DoxyCompactList}\small\item\em Маппинг альтернативной функции SPI между GPIO. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsection*{Enumerations}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
enum \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1}{GPIO\+\_\+\+LEDState\+Type\+Def}} \{ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae}{LED\+\_\+\+IS\+\_\+\+OFF}} = 0
|
||||
, \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea}{LED\+\_\+\+IS\+\_\+\+ON}} = 1
|
||||
, \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb}{LED\+\_\+\+IS\+\_\+\+BLINKING}} = 2
|
||||
, \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b}{LED\+\_\+\+IS\+\_\+\+FADING}} = 3
|
||||
\}
|
||||
\begin{DoxyCompactList}\small\item\em Режимы работы светодиода \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsection*{Functions}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}{GPIO\+\_\+\+Clock\+\_\+\+Enable}} (GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}GPIOx)
|
||||
\begin{DoxyCompactList}\small\item\em Включить тактирование порта GPIO. \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7}{GPIO\+\_\+\+Switch\+\_\+\+Init}} (\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}sw, GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}GPIOx, uint32\+\_\+t GPIO\+\_\+\+PIN\+\_\+X, uint8\+\_\+t SW\+\_\+\+On\+\_\+\+State)
|
||||
\begin{DoxyCompactList}\small\item\em Инициализировать кнопку (структуру кнопки) \end{DoxyCompactList}\item
|
||||
uint8\+\_\+t \mbox{\hyperlink{group___g_p_i_o___s_w_i_t_c_h_ga4b6b8be19a9265bfee6b2bb8a68e988f}{GPIO\+\_\+\+Read\+\_\+\+Switch}} (\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}swstart)
|
||||
\begin{DoxyCompactList}\small\item\em Считать состоянии кнопки \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gac936453c7a0841c0b17bcfdae4958084}{GPIO\+\_\+\+LED\+\_\+\+Init}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led, GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}GPIOx, uint32\+\_\+t GPIO\+\_\+\+PIN\+\_\+X, uint8\+\_\+t LED\+\_\+\+On\+\_\+\+State)
|
||||
\begin{DoxyCompactList}\small\item\em Инициализировать светодиод (структуру светодиода) \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ga4b9572949326b050694cd55d0a7e5f6c}{GPIO\+\_\+\+LED\+\_\+\+On}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led)
|
||||
\begin{DoxyCompactList}\small\item\em Включить светодиод \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaadda2d4f021390a4e392210a5ace5357}{GPIO\+\_\+\+LED\+\_\+\+Off}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led)
|
||||
\begin{DoxyCompactList}\small\item\em Выключить светодиод \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gae78b570447d55a462a679a89dbaa8ea2}{GPIO\+\_\+\+LED\+\_\+\+Set}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led, uint8\+\_\+t led\+\_\+state)
|
||||
\begin{DoxyCompactList}\small\item\em Выставить светодиод по переменной \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaf22f44ecaf6a1932b47edc5a845b03a9}{GPIO\+\_\+\+LED\+\_\+\+Blink\+\_\+\+Start}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led, uint32\+\_\+t period)
|
||||
\begin{DoxyCompactList}\small\item\em Активировать моргание светодиодом \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaa00f20021781464af3dfe74aa3e59a0a}{GPIO\+\_\+\+LED\+\_\+\+Fading\+\_\+\+Start}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led, uint32\+\_\+t period)
|
||||
\begin{DoxyCompactList}\small\item\em Активировать моргание светодиодом \end{DoxyCompactList}\item
|
||||
void \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gad6e6189824406c4d472b6340c7f19bb2}{GPIO\+\_\+\+LED\+\_\+\+Dynamic\+\_\+\+Handle}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led)
|
||||
\begin{DoxyCompactList}\small\item\em Управление динамическими режимами свечения светодиода \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsection{Detailed Description}
|
||||
Заголовочный файл для модуля инициализации портов.
|
||||
|
||||
|
||||
|
||||
Definition in file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}.
|
||||
|
||||
181
Doc/latex/general__gpio_8h_source.tex
Normal file
181
Doc/latex/general__gpio_8h_source.tex
Normal file
@@ -0,0 +1,181 @@
|
||||
\doxysection{general\+\_\+gpio.\+h}
|
||||
\hypertarget{general__gpio_8h_source}{}\label{general__gpio_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_gpio.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_gpio.h}}
|
||||
\mbox{\hyperlink{general__gpio_8h}{Go to the documentation of this file.}}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00001}00001\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00002}00002\ \textcolor{comment}{**************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ general\_gpio.h}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Заголовочный\ файл\ для\ модуля\ инициализации\ портов.}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00005}00005\ \textcolor{comment}{**************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00006}00006\ \textcolor{comment}{*\ @defgroup\ MY\_LIBS\_GPIO\ \ \ \ \ \ GPIO\ Tools}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00007}00007\ \textcolor{comment}{*\ @ingroup\ \ MYLIBS\_PERIPHERAL}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00008}00008\ \textcolor{comment}{*\ @brief\ \ \ \ Функции\ и\ макросы\ для\ удобной\ работы\ с\ GPIO.}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00009}00009\ \textcolor{comment}{*************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00010}00010\ \textcolor{preprocessor}{\#ifndef\ \_\_GPIO\_GENERAL\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00011}00011\ \textcolor{preprocessor}{\#define\ \_\_GPIO\_GENERAL\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00012}00012\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00013}00013\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00014}00014\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00015}00015\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00016}00016\ \textcolor{comment}{\ \ *\ @addtogroup\ GPIO\_INIT\ Init\ defines}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00017}00017\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ GPIO\_GENERAL}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00018}00018\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Настройка\ состояний\ кнопок\ и\ количества\ тиков\ в\ периоде\ ШИМ}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00019}00019\ \textcolor{comment}{\ \ *\ @\{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00020}00020\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00021}00021\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00022}00022\ \textcolor{preprocessor}{\#ifndef\ LED\_PWM\_TICKS}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00023}\mbox{\hyperlink{group___g_p_i_o___i_n_i_t_ga1d42e219765ec526d99e306638ac0023}{00023}}\ \textcolor{preprocessor}{\#define\ LED\_PWM\_TICKS\ 15\ }\textcolor{comment}{///<\ Количество\ тиков\ в\ периоде\ ШИМ}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00024}00024\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00025}00025\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00026}00026\ \textcolor{preprocessor}{\#ifndef\ LED\_ON}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00027}\mbox{\hyperlink{group___g_p_i_o___i_n_i_t_gaf2e697ac60e05813d45ea2c9c9e79c25}{00027}}\ \textcolor{preprocessor}{\#define\ LED\_ON\ 1\ \ }\textcolor{comment}{///<\ Состояние\ пина\ для\ включения\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00028}00028\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00029}00029\ \textcolor{preprocessor}{\#ifndef\ LED\_OFF}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00030}\mbox{\hyperlink{group___g_p_i_o___i_n_i_t_ga80700bb63bd56ebabbb4728aa433fd29}{00030}}\ \textcolor{preprocessor}{\#define\ LED\_OFF\ 0\ }\textcolor{comment}{///<\ Состояние\ пина\ для\ выключения\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00031}00031\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00032}00032\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00033}00033\ \textcolor{preprocessor}{\#ifndef\ SW\_ON}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00034}\mbox{\hyperlink{group___g_p_i_o___i_n_i_t_ga19d9e3aced311179a2914e0c9b13d0f9}{00034}}\ \textcolor{preprocessor}{\#define\ SW\_ON\ 1\ \ \ }\textcolor{comment}{///<\ Состояние\ пина\ при\ нажатой\ кнопке}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00035}00035\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00036}00036\ \textcolor{preprocessor}{\#ifndef\ SW\_OFF}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00037}\mbox{\hyperlink{group___g_p_i_o___i_n_i_t_gacd8900c9ec0efde1da3253b718574067}{00037}}\ \textcolor{preprocessor}{\#define\ SW\_OFF\ 0\ \ }\textcolor{comment}{///<\ Состояние\ пина\ при\ отжатой\ кнопке}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00038}00038\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00039}00039\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00040}00040\ \textcolor{comment}{/**\ GPIO\_INIT}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00041}00041\ \textcolor{comment}{\ \ *\ @\}}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00042}00042\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00043}00043\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00044}00044\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00045}00045\ \textcolor{comment}{//\ /**}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00046}00046\ \textcolor{comment}{//\ \ \ *\ @brief\ Маппинг\ альтернативной\ функции\ SPI\ между\ GPIO}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00047}00047\ \textcolor{comment}{//\ \ \ *\ @ingroup\ \ GPIO\_GENERAL}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00048}00048\ \textcolor{comment}{//\ \ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00049}00049\ \textcolor{comment}{//\ \#define\ SPI\_Alternate\_Mapping(INSTANCE)\ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00050}00050\ \textcolor{comment}{//\ ((((INSTANCE)\ ==\ TIM1)\ \ ||\ ((INSTANCE)\ ==\ TIM2))?\ \ \ \ \ GPIO\_AF1\_TIM1:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00051}00051\ \textcolor{comment}{//\ (((INSTANCE)\ ==\ TIM3)\ \ \ ||\ ((INSTANCE)\ ==\ TIM4)\ \ \ ||\ ((INSTANCE)\ ==\ TIM5))?\ GPIO\_AF2\_TIM3:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00052}00052\ \textcolor{comment}{//\ (((INSTANCE)\ ==\ TIM8)\ \ \ ||\ ((INSTANCE)\ ==\ TIM9)\ \ \ ||\ ((INSTANCE)\ ==\ TIM10)\ ||\ ((INSTANCE)\ ==\ TIM11))?\ GPIO\_AF3\_TIM8:\ \ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00053}00053\ \textcolor{comment}{//\ (((INSTANCE)\ ==\ TIM12)\ \ ||\ ((INSTANCE)\ ==\ TIM13)\ \ ||\ ((INSTANCE)\ ==\ TIM14))?\ GPIO\_AF9\_TIM12:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00054}00054\ \textcolor{comment}{//\ (0))}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00055}00055\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00056}00056\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00057}00057\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00058}00058\ \textcolor{comment}{\ \ *\ @brief\ Маппинг\ альтернативной\ функции\ TIM\ между\ GPIO}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00059}00059\ \textcolor{comment}{\ \ *\ @ingroup\ \ GPIO\_GENERAL}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00060}00060\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00061}\mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga34242874b455a72aa6e25841678ed105}{00061}}\ \textcolor{preprocessor}{\#define\ TIM\_Alternate\_Mapping(INSTANCE)\ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00062}00062\ \textcolor{preprocessor}{((((INSTANCE)\ ==\ TIM1)\ \ ||\ ((INSTANCE)\ ==\ TIM2))?\ GPIO\_AF1\_TIM1:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00063}00063\ \textcolor{preprocessor}{(((INSTANCE)\ ==\ TIM3)\ \ \ ||\ ((INSTANCE)\ ==\ TIM4)\ \ \ ||\ ((INSTANCE)\ ==\ TIM5))?\ GPIO\_AF2\_TIM3:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00064}00064\ \textcolor{preprocessor}{(((INSTANCE)\ ==\ TIM8)\ \ \ ||\ ((INSTANCE)\ ==\ TIM9)\ \ \ ||\ ((INSTANCE)\ ==\ TIM10)\ ||\ ((INSTANCE)\ ==\ TIM11))?\ GPIO\_AF3\_TIM8:\ \ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00065}00065\ \textcolor{preprocessor}{(((INSTANCE)\ ==\ TIM12)\ \ ||\ ((INSTANCE)\ ==\ TIM13)\ \ ||\ ((INSTANCE)\ ==\ TIM14))?\ GPIO\_AF9\_TIM12:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00066}00066\ \textcolor{preprocessor}{(0))}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00067}00067\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00068}00068\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00069}00069\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00070}00070\ \textcolor{comment}{\ \ *\ @brief\ Режимы\ работы\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00071}00071\ \textcolor{comment}{\ \ *\ @ingroup\ \ GPIO\_LEDS}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00072}00072\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00073}\mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1}{00073}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{enum}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00074}00074\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00075}\mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae}{00075}}\ \ \ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae}{LED\_IS\_OFF}}\ =\ 0,\ \ \ \ \ \ \ \textcolor{comment}{///<\ Светодиод\ выключен}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00076}\mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea}{00076}}\ \ \ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea}{LED\_IS\_ON}}\ =\ 1,\ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Светодиод\ включен}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00077}\mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb}{00077}}\ \ \ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb}{LED\_IS\_BLINKING}}\ =\ 2,\ \ \textcolor{comment}{///<\ Моргание\ светодиодом}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00078}\mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b}{00078}}\ \ \ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b}{LED\_IS\_FADING}}\ =\ 3,\ \ \ \ \textcolor{comment}{///<\ Плавное\ моргание\ светодиодом}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00079}00079\ \}\mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1}{GPIO\_LEDStateTypeDef}};}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00080}00080\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00081}00081\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00082}00082\ \textcolor{comment}{\ \ *\ @brief\ Структура\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00083}00083\ \textcolor{comment}{\ \ *\ @ingroup\ \ GPIO\_LEDS}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00084}00084\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00085}\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{00085}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00086}00086\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00087}\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_ad28d93023a00e3c5669bd3deda122435}{00087}}\ \ \ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1}{GPIO\_LEDStateTypeDef}}\ \mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_ad28d93023a00e3c5669bd3deda122435}{state}};\ \ \ \ \ \textcolor{comment}{///<\ Текущий\ режим\ работы\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00088}00088\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00089}\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf}{00089}}\ \ \ GPIO\_TypeDef\ \ *\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf}{LED\_Port}};\ \ \ \ \ \ \ \ \textcolor{comment}{///<\ GPIO\ порт\ ножки\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00090}\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a684ff60e4c94daf2221524cdc6fcc978}{00090}}\ \ \ uint32\_t\ \ \ \ \ \ \mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a684ff60e4c94daf2221524cdc6fcc978}{LED\_Pin}};\ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ GPIO\ пин\ ножки\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00091}00091\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00092}\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_abe9aadc0b28d042267f7155e187a1816}{00092}}\ \ \ uint8\_t\ \ \ \ \ \ \ \mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_abe9aadc0b28d042267f7155e187a1816}{LED\_ActiveLvl}};\ \ \ \ \textcolor{comment}{///<\ Активный\ уровень\ ножки\ (при\ котором\ светодиод\ горит)}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00093}\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a6cc026931a4681732f9a329ae03098ec}{00093}}\ \ \ uint32\_t\ \ \ \ \ \ \mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a6cc026931a4681732f9a329ae03098ec}{LED\_Period}};\ \ \ \ \ \ \ \textcolor{comment}{///<\ Период\ моргания\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00094}00094\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00095}\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a8c43c12787f4a89f4a785f91a979ba68}{00095}}\ \ \ uint32\_t\ \ \ \ \ \ \mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def_a8c43c12787f4a89f4a785f91a979ba68}{tickprev}};\textcolor{comment}{///<\ Период\ моргания\ светодиода}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00096}00096\ \}\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}};}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00097}00097\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00098}00098\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00099}00099\ \textcolor{comment}{\ \ *\ @brief\ Структура\ кнопки}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00100}00100\ \textcolor{comment}{\ \ *\ @ingroup\ \ GPIO\_SWITCH}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00101}00101\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00102}\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{00102}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00103}00103\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00104}\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_afb369df75a6065fd89ac4ba97d98ab1a}{00104}}\ \ \ GPIO\_TypeDef\ \ *\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_afb369df75a6065fd89ac4ba97d98ab1a}{Sw\_Port}};\ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ GPIO\ порт\ ножки\ кнопки}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00105}\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a63d58d9cba49a5823175585ef2996032}{00105}}\ \ \ uint32\_t\ \ \ \ \ \ \mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a63d58d9cba49a5823175585ef2996032}{Sw\_Pin}};\ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ GPIO\ пин\ ножки\ кнопки}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00106}00106\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00107}\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a4fadf5ead3ebccad521a52c064eeb405}{00107}}\ \ \ uint8\_t\ \ \ \ \ \ \ \mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a4fadf5ead3ebccad521a52c064eeb405}{Sw\_ActiveLvl}};\ \ \ \ \ \textcolor{comment}{///<\ Активный\ уровень\ ножки\ (при\ котором\ кнопка\ нажата)}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00108}\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a245f1dc811279ce5d4598582db979a89}{00108}}\ \ \ uint32\_t\ \ \ \ \ \ \mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a245f1dc811279ce5d4598582db979a89}{Sw\_PrevState}};\ \ \ \ \ \textcolor{comment}{///<\ Предыдущее\ состояние\ кнопки}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00109}\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a2600e599a961af2e280c721894df4c06}{00109}}\ \ \ uint32\_t\ \ \ \ \ \ \mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a2600e599a961af2e280c721894df4c06}{Sw\_FilterDelay}};\ \ \ \textcolor{comment}{///<\ Фильтр\ от\ дребезга\ (в\ мс)}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00110}00110\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00111}\mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a13f97b867ff1a77ef182c9b13d964ca6}{00111}}\ \ \ uint32\_t\ \ \ \ \ \ \mbox{\hyperlink{struct_g_p_i_o___switch_type_def_a13f97b867ff1a77ef182c9b13d964ca6}{tickprev}};\textcolor{comment}{///<\ Период\ моргания\ светодиода\ \ }}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00112}00112\ \}\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\_SwitchTypeDef}};}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00113}00113\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00114}00114\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00115}00115\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00116}00116\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00117}00117\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00118}00118\ \textcolor{comment}{\ \ *\ @addtogroup\ GPIO\_GENERAL\ \ General\ tools}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00119}00119\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MY\_LIBS\_GPIO}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00120}00120\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Общие\ функции/макросы\ для\ работы\ с\ GPIO}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00121}00121\ \textcolor{comment}{\ \ *\ @\{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00122}00122\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00123}00123\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00124}00124\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}{GPIO\_Clock\_Enable}}(GPIO\_TypeDef\ *GPIOx);}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00125}00125\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00126}00126\ \textcolor{comment}{/**\ GPIO\_GENERAL}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00127}00127\ \textcolor{comment}{\ \ *\ @\}}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00128}00128\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00129}00129\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00130}00130\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00131}00131\ \textcolor{comment}{*\ @addtogroup\ GPIO\_SWITCH\ \ Switch\ tools}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00132}00132\ \textcolor{comment}{*\ @ingroup\ \ \ \ MY\_LIBS\_GPIO}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00133}00133\ \textcolor{comment}{*\ @brief\ \ \ \ \ \ Функции\ для\ работы\ с\ GPIO,\ как\ с\ кнопкой}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00134}00134\ \textcolor{comment}{*\ @\{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00135}00135\ \textcolor{comment}{*/}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00136}00136\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00137}00137\ \textcolor{comment}{/*\ Инициализировать\ кнопку\ (структуру\ кнопки)\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00138}00138\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7}{GPIO\_Switch\_Init}}(\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\_SwitchTypeDef}}\ *sw,\ GPIO\_TypeDef\ *GPIOx,\ uint32\_t\ GPIO\_PIN\_X,\ uint8\_t\ SW\_On\_State);}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00139}00139\ \textcolor{comment}{/*\ Считать\ состоянии\ кнопки\ запуска\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00140}00140\ uint8\_t\ \mbox{\hyperlink{group___g_p_i_o___s_w_i_t_c_h_ga4b6b8be19a9265bfee6b2bb8a68e988f}{GPIO\_Read\_Switch}}(\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\_SwitchTypeDef}}\ *swstart);}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00141}00141\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00142}00142\ \textcolor{comment}{/**\ GPIO\_SWITCH}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00143}00143\ \textcolor{comment}{\ \ *\ @\}}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00144}00144\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00145}00145\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00146}00146\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00147}00147\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00148}00148\ \textcolor{comment}{\ \ *\ @addtogroup\ GPIO\_LEDS\ \ LED\ tools}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00149}00149\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MY\_LIBS\_GPIO}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00150}00150\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Функции\ для\ работы\ с\ GPIO,\ для\ управления\ светодиодом}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00151}00151\ \textcolor{comment}{\ \ *\ @\{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00152}00152\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00153}00153\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00154}00154\ \textcolor{comment}{/*\ Инициализировать\ светодиод\ (структуру\ светодиода)\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00155}00155\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gac936453c7a0841c0b17bcfdae4958084}{GPIO\_LED\_Init}}(\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ *led,\ GPIO\_TypeDef\ *GPIOx,\ uint32\_t\ GPIO\_PIN\_X,\ uint8\_t\ LED\_On\_State);}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00156}00156\ \textcolor{comment}{/*\ Включить\ светодиод\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00157}00157\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ga4b9572949326b050694cd55d0a7e5f6c}{GPIO\_LED\_On}}(\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ *led);}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00158}00158\ \textcolor{comment}{/*\ Выключить\ светодиод\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00159}00159\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaadda2d4f021390a4e392210a5ace5357}{GPIO\_LED\_Off}}(\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ *led);}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00160}00160\ \textcolor{comment}{/*\ Выставить\ светодиод\ по\ переменной\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00161}00161\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gae78b570447d55a462a679a89dbaa8ea2}{GPIO\_LED\_Set}}(\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ *led,\ uint8\_t\ led\_state);}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00162}00162\ \textcolor{comment}{/*\ Активировать\ моргание\ светодиодом\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00163}00163\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaf22f44ecaf6a1932b47edc5a845b03a9}{GPIO\_LED\_Blink\_Start}}(\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ *led,\ uint32\_t\ period);}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00164}00164\ \textcolor{comment}{/*\ Активировать\ моргание\ светодиодом\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00165}00165\ HAL\_StatusTypeDef\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaa00f20021781464af3dfe74aa3e59a0a}{GPIO\_LED\_Fading\_Start}}(\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ *led,\ uint32\_t\ period);}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00166}00166\ \textcolor{comment}{/*\ Управление\ динамическими\ режимами\ свечения\ светодиода\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00167}00167\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gad6e6189824406c4d472b6340c7f19bb2}{GPIO\_LED\_Dynamic\_Handle}}(\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ *led);}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00168}00168\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00169}00169\ \textcolor{comment}{/**\ GPIO\_LEDS}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00170}00170\ \textcolor{comment}{\ \ *\ @\}}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00171}00171\ \textcolor{comment}{\ \ */}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00172}00172\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00173}00173\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00174}00174\ }
|
||||
\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00175}00175\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_GPIO\_GENERAL\_H\_}}
|
||||
|
||||
\end{DoxyCode}
|
||||
194
Doc/latex/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.tex
Normal file
194
Doc/latex/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.tex
Normal file
@@ -0,0 +1,194 @@
|
||||
\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 типах.
|
||||
|
||||
|
||||
\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}}.
|
||||
|
||||
167
Doc/latex/group___d_e_l_a_y_s___d_e_f_i_n_e_s.tex
Normal file
167
Doc/latex/group___d_e_l_a_y_s___d_e_f_i_n_e_s.tex
Normal file
@@ -0,0 +1,167 @@
|
||||
\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}}
|
||||
|
||||
|
||||
Макросы и определения для работы с задержками в миллисекундах.
|
||||
|
||||
|
||||
\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{HAL\_Delay(\_ms\_)}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Задержка на указанное количество миллисекунд.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em \+\_\+ms\+\_\+} & Время задержки в миллисекундах. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyNote}{Note}
|
||||
Использует HAL\+\_\+\+Delay или os\+Delay в зависимости от FREERTOS\+\_\+\+DELAY.
|
||||
\end{DoxyNote}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00082}{82}} 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\_)\ =\ HAL\_GetTick()}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Начать отсчет задержки.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em \+\_\+pvar\+\_\+} & Указатель на переменную типа uint32\+\_\+t для хранения времени старта.\\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
После вызова этого макроса переменная {\itshape pvar} содержит текущее количество миллисекунд с момента запуска системы (HAL\+\_\+\+Get\+Tick).
|
||||
|
||||
Используется для реализации неблокирующих задержек.
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00094}{94}} 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{(HAL\_GetTick()\ -\/\ *(\_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_l00111}{111}} 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{(HAL\_GetTick()\ -\/\ *(\_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_l00128}{128}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
|
||||
|
||||
152
Doc/latex/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.tex
Normal file
152
Doc/latex/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.tex
Normal file
@@ -0,0 +1,152 @@
|
||||
\doxysubsubsection{Error Handler defines }
|
||||
\hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s}{}\label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s}\index{Error Handler defines@{Error Handler defines}}
|
||||
|
||||
|
||||
Дефайны для обработки ошибок
|
||||
|
||||
|
||||
\doxysubsubsubsubsection*{Macros}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{My\+Libs\+\_\+\+Error\+\_\+\+Handler}}(params)
|
||||
\begin{DoxyCompactList}\small\item\em Error\+\_\+\+Handler который будет вызыватся в библиотеке \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga0b75f0bcf066acdf797b8e6730c52f86}{check\+\_\+null\+\_\+ptr\+\_\+1}}(\+\_\+p1\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Проверить указатель на NULL. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae7d1cbb9075ee4b830342fd564d96be0}{check\+\_\+null\+\_\+ptr\+\_\+2}}(\+\_\+p1\+\_\+, \+\_\+p2\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Проверить два указателя на NULL. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga002f4a5f5d8bb37d88f607386bc6ba2e}{check\+\_\+null\+\_\+ptr\+\_\+3}}(\+\_\+p1\+\_\+, \+\_\+p2\+\_\+, \+\_\+p3\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Проверить три указателя на NULL. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gade91c09d89a5f69003dcfe506ed0327f}{check\+\_\+null\+\_\+ptr\+\_\+4}}(\+\_\+p1\+\_\+, \+\_\+p2\+\_\+, \+\_\+p3\+\_\+, \+\_\+p4\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Проверить четыре указателя на NULL. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga944edcd2c65519578d36730b94701f64}{check\+\_\+null\+\_\+ptr\+\_\+5}}(\+\_\+p1\+\_\+, \+\_\+p2\+\_\+, \+\_\+p3\+\_\+, \+\_\+p4\+\_\+, \+\_\+p5\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Проверить пять указателей на NULL. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsection*{Functions}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga1730ffe1e560465665eb47d9264826f9}\label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga1730ffe1e560465665eb47d9264826f9}
|
||||
void {\bfseries Error\+\_\+\+Handler} (void)
|
||||
\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsection{Detailed Description}
|
||||
Дефайны для обработки ошибок
|
||||
|
||||
|
||||
|
||||
\label{doc-define-members}
|
||||
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_doc-define-members}
|
||||
\doxysubsubsubsection{Macro Definition Documentation}
|
||||
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}\index{Error Handler defines@{Error Handler defines}!MyLibs\_Error\_Handler@{MyLibs\_Error\_Handler}}
|
||||
\index{MyLibs\_Error\_Handler@{MyLibs\_Error\_Handler}!Error Handler defines@{Error Handler defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{MyLibs\_Error\_Handler}{MyLibs\_Error\_Handler}}
|
||||
{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}
|
||||
\#define My\+Libs\+\_\+\+Error\+\_\+\+Handler(\begin{DoxyParamCaption}\item[{}]{params}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{Error\_Handler(params)}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Error\+\_\+\+Handler который будет вызыватся в библиотеке
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00031}{31}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
|
||||
|
||||
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga0b75f0bcf066acdf797b8e6730c52f86}\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_1@{check\_null\_ptr\_1}}
|
||||
\index{check\_null\_ptr\_1@{check\_null\_ptr\_1}!Error Handler defines@{Error Handler defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{check\_null\_ptr\_1}{check\_null\_ptr\_1}}
|
||||
{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga0b75f0bcf066acdf797b8e6730c52f86}
|
||||
\#define check\+\_\+null\+\_\+ptr\+\_\+1(\begin{DoxyParamCaption}\item[{}]{\+\_\+p1\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\_p1\_\ ==\ NULL)}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Проверить указатель на NULL.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00038}{38}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
|
||||
|
||||
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae7d1cbb9075ee4b830342fd564d96be0}\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_2@{check\_null\_ptr\_2}}
|
||||
\index{check\_null\_ptr\_2@{check\_null\_ptr\_2}!Error Handler defines@{Error Handler defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{check\_null\_ptr\_2}{check\_null\_ptr\_2}}
|
||||
{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae7d1cbb9075ee4b830342fd564d96be0}
|
||||
\#define check\+\_\+null\+\_\+ptr\+\_\+2(\begin{DoxyParamCaption}\item[{}]{\+\_\+p1\+\_\+}{, }\item[{}]{\+\_\+p2\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{((\_p1\_\ ==\ NULL)\ ||\ (\_p2\_\ ==\ NULL))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Проверить два указателя на NULL.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00040}{40}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
|
||||
|
||||
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga002f4a5f5d8bb37d88f607386bc6ba2e}\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_3@{check\_null\_ptr\_3}}
|
||||
\index{check\_null\_ptr\_3@{check\_null\_ptr\_3}!Error Handler defines@{Error Handler defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{check\_null\_ptr\_3}{check\_null\_ptr\_3}}
|
||||
{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga002f4a5f5d8bb37d88f607386bc6ba2e}
|
||||
\#define check\+\_\+null\+\_\+ptr\+\_\+3(\begin{DoxyParamCaption}\item[{}]{\+\_\+p1\+\_\+}{, }\item[{}]{\+\_\+p2\+\_\+}{, }\item[{}]{\+\_\+p3\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{((\_p1\_\ ==\ NULL)\ ||\ (\_p2\_\ ==\ NULL)\ ||\ (\_p3\_\ ==\ NULL))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Проверить три указателя на NULL.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00042}{42}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
|
||||
|
||||
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gade91c09d89a5f69003dcfe506ed0327f}\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_4@{check\_null\_ptr\_4}}
|
||||
\index{check\_null\_ptr\_4@{check\_null\_ptr\_4}!Error Handler defines@{Error Handler defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{check\_null\_ptr\_4}{check\_null\_ptr\_4}}
|
||||
{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gade91c09d89a5f69003dcfe506ed0327f}
|
||||
\#define check\+\_\+null\+\_\+ptr\+\_\+4(\begin{DoxyParamCaption}\item[{}]{\+\_\+p1\+\_\+}{, }\item[{}]{\+\_\+p2\+\_\+}{, }\item[{}]{\+\_\+p3\+\_\+}{, }\item[{}]{\+\_\+p4\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{((\_p1\_\ ==\ NULL)\ ||\ (\_p2\_\ ==\ NULL)\ ||\ (\_p3\_\ ==\ NULL)\ ||\ (\_p4\_\ ==\ NULL))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Проверить четыре указателя на NULL.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00044}{44}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
|
||||
|
||||
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga944edcd2c65519578d36730b94701f64}\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_5@{check\_null\_ptr\_5}}
|
||||
\index{check\_null\_ptr\_5@{check\_null\_ptr\_5}!Error Handler defines@{Error Handler defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{check\_null\_ptr\_5}{check\_null\_ptr\_5}}
|
||||
{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga944edcd2c65519578d36730b94701f64}
|
||||
\#define check\+\_\+null\+\_\+ptr\+\_\+5(\begin{DoxyParamCaption}\item[{}]{\+\_\+p1\+\_\+}{, }\item[{}]{\+\_\+p2\+\_\+}{, }\item[{}]{\+\_\+p3\+\_\+}{, }\item[{}]{\+\_\+p4\+\_\+}{, }\item[{}]{\+\_\+p5\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{((\_p1\_\ ==\ NULL)\ ||\ (\_p2\_\ ==\ NULL)\ ||\ (\_p3\_\ ==\ NULL)\ ||\ (\_p4\_\ ==\ NULL)\ ||\ (\_p5\_\ ==\ NULL))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Проверить пять указателей на NULL.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00046}{46}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
|
||||
|
||||
75
Doc/latex/group___g_p_i_o___g_e_n_e_r_a_l.tex
Normal file
75
Doc/latex/group___g_p_i_o___g_e_n_e_r_a_l.tex
Normal file
@@ -0,0 +1,75 @@
|
||||
\doxysubsubsubsection{General tools }
|
||||
\hypertarget{group___g_p_i_o___g_e_n_e_r_a_l}{}\label{group___g_p_i_o___g_e_n_e_r_a_l}\index{General tools@{General tools}}
|
||||
|
||||
|
||||
Общие функции/макросы для работы с GPIO.
|
||||
|
||||
|
||||
\doxysubsubsubsubsubsection*{Topics}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\mbox{\hyperlink{group___g_p_i_o___i_n_i_t}{Init defines}}
|
||||
\begin{DoxyCompactList}\small\item\em Настройка состояний кнопок и количества тиков в периоде ШИМ \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsubsection*{Macros}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga34242874b455a72aa6e25841678ed105}{TIM\+\_\+\+Alternate\+\_\+\+Mapping}}(INSTANCE)
|
||||
\begin{DoxyCompactList}\small\item\em Маппинг альтернативной функции SPI между GPIO. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsubsection*{Functions}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}{GPIO\+\_\+\+Clock\+\_\+\+Enable}} (GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}GPIOx)
|
||||
\begin{DoxyCompactList}\small\item\em Включить тактирование порта GPIO. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsubsection{Detailed Description}
|
||||
Общие функции/макросы для работы с GPIO.
|
||||
|
||||
|
||||
|
||||
\label{doc-define-members}
|
||||
\Hypertarget{group___g_p_i_o___g_e_n_e_r_a_l_doc-define-members}
|
||||
\doxysubsubsubsubsection{Macro Definition Documentation}
|
||||
\Hypertarget{group___g_p_i_o___g_e_n_e_r_a_l_ga34242874b455a72aa6e25841678ed105}\index{General tools@{General tools}!TIM\_Alternate\_Mapping@{TIM\_Alternate\_Mapping}}
|
||||
\index{TIM\_Alternate\_Mapping@{TIM\_Alternate\_Mapping}!General tools@{General tools}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{TIM\_Alternate\_Mapping}{TIM\_Alternate\_Mapping}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___g_e_n_e_r_a_l_ga34242874b455a72aa6e25841678ed105}
|
||||
\#define TIM\+\_\+\+Alternate\+\_\+\+Mapping(\begin{DoxyParamCaption}\item[{}]{INSTANCE}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{((((INSTANCE)\ ==\ TIM1)\ \ ||\ ((INSTANCE)\ ==\ TIM2))?\ GPIO\_AF1\_TIM1:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
|
||||
\DoxyCodeLine{(((INSTANCE)\ ==\ TIM3)\ \ \ ||\ ((INSTANCE)\ ==\ TIM4)\ \ \ ||\ ((INSTANCE)\ ==\ TIM5))?\ GPIO\_AF2\_TIM3:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
|
||||
\DoxyCodeLine{(((INSTANCE)\ ==\ TIM8)\ \ \ ||\ ((INSTANCE)\ ==\ TIM9)\ \ \ ||\ ((INSTANCE)\ ==\ TIM10)\ ||\ ((INSTANCE)\ ==\ TIM11))?\ GPIO\_AF3\_TIM8:\ \ \(\backslash\)}
|
||||
\DoxyCodeLine{(((INSTANCE)\ ==\ TIM12)\ \ ||\ ((INSTANCE)\ ==\ TIM13)\ \ ||\ ((INSTANCE)\ ==\ TIM14))?\ GPIO\_AF9\_TIM12:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
|
||||
\DoxyCodeLine{(0))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Маппинг альтернативной функции SPI между GPIO.
|
||||
|
||||
Маппинг альтернативной функции TIM между GPIO
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00061}{61}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}.
|
||||
|
||||
|
||||
|
||||
\label{doc-func-members}
|
||||
\Hypertarget{group___g_p_i_o___g_e_n_e_r_a_l_doc-func-members}
|
||||
\doxysubsubsubsubsection{Function Documentation}
|
||||
\Hypertarget{group___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}\index{General tools@{General tools}!GPIO\_Clock\_Enable@{GPIO\_Clock\_Enable}}
|
||||
\index{GPIO\_Clock\_Enable@{GPIO\_Clock\_Enable}!General tools@{General tools}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_Clock\_Enable()}{GPIO\_Clock\_Enable()}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}
|
||||
HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+Clock\+\_\+\+Enable (\begin{DoxyParamCaption}\item[{GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}}]{GPIOx}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Включить тактирование порта GPIO.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00021}{21}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}.
|
||||
|
||||
\input{group___g_p_i_o___i_n_i_t}
|
||||
100
Doc/latex/group___g_p_i_o___i_n_i_t.tex
Normal file
100
Doc/latex/group___g_p_i_o___i_n_i_t.tex
Normal file
@@ -0,0 +1,100 @@
|
||||
\doxysubsubsubsubsection{Init defines }
|
||||
\hypertarget{group___g_p_i_o___i_n_i_t}{}\label{group___g_p_i_o___i_n_i_t}\index{Init defines@{Init defines}}
|
||||
|
||||
|
||||
Настройка состояний кнопок и количества тиков в периоде ШИМ
|
||||
|
||||
|
||||
\doxysubsubsubsubsubsubsection*{Macros}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___g_p_i_o___i_n_i_t_ga1d42e219765ec526d99e306638ac0023}{LED\+\_\+\+PWM\+\_\+\+TICKS}}~15
|
||||
\begin{DoxyCompactList}\small\item\em Количество тиков в периоде ШИМ \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___g_p_i_o___i_n_i_t_gaf2e697ac60e05813d45ea2c9c9e79c25}{LED\+\_\+\+ON}}~1
|
||||
\begin{DoxyCompactList}\small\item\em Состояние пина для включения светодиода \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___g_p_i_o___i_n_i_t_ga80700bb63bd56ebabbb4728aa433fd29}{LED\+\_\+\+OFF}}~0
|
||||
\begin{DoxyCompactList}\small\item\em Состояние пина для выключения светодиода \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___g_p_i_o___i_n_i_t_ga19d9e3aced311179a2914e0c9b13d0f9}{SW\+\_\+\+ON}}~1
|
||||
\begin{DoxyCompactList}\small\item\em Состояние пина при нажатой кнопке \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___g_p_i_o___i_n_i_t_gacd8900c9ec0efde1da3253b718574067}{SW\+\_\+\+OFF}}~0
|
||||
\begin{DoxyCompactList}\small\item\em Состояние пина при отжатой кнопке \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsubsubsection{Detailed Description}
|
||||
Настройка состояний кнопок и количества тиков в периоде ШИМ
|
||||
|
||||
|
||||
|
||||
\label{doc-define-members}
|
||||
\Hypertarget{group___g_p_i_o___i_n_i_t_doc-define-members}
|
||||
\doxysubsubsubsubsubsection{Macro Definition Documentation}
|
||||
\Hypertarget{group___g_p_i_o___i_n_i_t_ga1d42e219765ec526d99e306638ac0023}\index{Init defines@{Init defines}!LED\_PWM\_TICKS@{LED\_PWM\_TICKS}}
|
||||
\index{LED\_PWM\_TICKS@{LED\_PWM\_TICKS}!Init defines@{Init defines}}
|
||||
\doxysubsubsubsubsubsubsection{\texorpdfstring{LED\_PWM\_TICKS}{LED\_PWM\_TICKS}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___i_n_i_t_ga1d42e219765ec526d99e306638ac0023}
|
||||
\#define LED\+\_\+\+PWM\+\_\+\+TICKS~15}
|
||||
|
||||
|
||||
|
||||
Количество тиков в периоде ШИМ
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00023}{23}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}.
|
||||
|
||||
\Hypertarget{group___g_p_i_o___i_n_i_t_gaf2e697ac60e05813d45ea2c9c9e79c25}\index{Init defines@{Init defines}!LED\_ON@{LED\_ON}}
|
||||
\index{LED\_ON@{LED\_ON}!Init defines@{Init defines}}
|
||||
\doxysubsubsubsubsubsubsection{\texorpdfstring{LED\_ON}{LED\_ON}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___i_n_i_t_gaf2e697ac60e05813d45ea2c9c9e79c25}
|
||||
\#define LED\+\_\+\+ON~1}
|
||||
|
||||
|
||||
|
||||
Состояние пина для включения светодиода
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00027}{27}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}.
|
||||
|
||||
\Hypertarget{group___g_p_i_o___i_n_i_t_ga80700bb63bd56ebabbb4728aa433fd29}\index{Init defines@{Init defines}!LED\_OFF@{LED\_OFF}}
|
||||
\index{LED\_OFF@{LED\_OFF}!Init defines@{Init defines}}
|
||||
\doxysubsubsubsubsubsubsection{\texorpdfstring{LED\_OFF}{LED\_OFF}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___i_n_i_t_ga80700bb63bd56ebabbb4728aa433fd29}
|
||||
\#define LED\+\_\+\+OFF~0}
|
||||
|
||||
|
||||
|
||||
Состояние пина для выключения светодиода
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00030}{30}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}.
|
||||
|
||||
\Hypertarget{group___g_p_i_o___i_n_i_t_ga19d9e3aced311179a2914e0c9b13d0f9}\index{Init defines@{Init defines}!SW\_ON@{SW\_ON}}
|
||||
\index{SW\_ON@{SW\_ON}!Init defines@{Init defines}}
|
||||
\doxysubsubsubsubsubsubsection{\texorpdfstring{SW\_ON}{SW\_ON}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___i_n_i_t_ga19d9e3aced311179a2914e0c9b13d0f9}
|
||||
\#define SW\+\_\+\+ON~1}
|
||||
|
||||
|
||||
|
||||
Состояние пина при нажатой кнопке
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00034}{34}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}.
|
||||
|
||||
\Hypertarget{group___g_p_i_o___i_n_i_t_gacd8900c9ec0efde1da3253b718574067}\index{Init defines@{Init defines}!SW\_OFF@{SW\_OFF}}
|
||||
\index{SW\_OFF@{SW\_OFF}!Init defines@{Init defines}}
|
||||
\doxysubsubsubsubsubsubsection{\texorpdfstring{SW\_OFF}{SW\_OFF}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___i_n_i_t_gacd8900c9ec0efde1da3253b718574067}
|
||||
\#define SW\+\_\+\+OFF~0}
|
||||
|
||||
|
||||
|
||||
Состояние пина при отжатой кнопке
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00037}{37}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}.
|
||||
|
||||
245
Doc/latex/group___g_p_i_o___l_e_d_s.tex
Normal file
245
Doc/latex/group___g_p_i_o___l_e_d_s.tex
Normal file
@@ -0,0 +1,245 @@
|
||||
\doxysubsubsubsection{LED tools }
|
||||
\hypertarget{group___g_p_i_o___l_e_d_s}{}\label{group___g_p_i_o___l_e_d_s}\index{LED tools@{LED tools}}
|
||||
|
||||
|
||||
Функции для работы с GPIO, для управления светодиодом
|
||||
|
||||
|
||||
\doxysubsubsubsubsubsection*{Classes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
struct \mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Структура светодиода \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsubsection*{Enumerations}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
enum \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1}{GPIO\+\_\+\+LEDState\+Type\+Def}} \{ \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae}{LED\+\_\+\+IS\+\_\+\+OFF}} = 0
|
||||
, \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea}{LED\+\_\+\+IS\+\_\+\+ON}} = 1
|
||||
, \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb}{LED\+\_\+\+IS\+\_\+\+BLINKING}} = 2
|
||||
, \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b}{LED\+\_\+\+IS\+\_\+\+FADING}} = 3
|
||||
\}
|
||||
\begin{DoxyCompactList}\small\item\em Режимы работы светодиода \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsubsection*{Functions}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gac936453c7a0841c0b17bcfdae4958084}{GPIO\+\_\+\+LED\+\_\+\+Init}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led, GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}GPIOx, uint32\+\_\+t GPIO\+\_\+\+PIN\+\_\+X, uint8\+\_\+t LED\+\_\+\+On\+\_\+\+State)
|
||||
\begin{DoxyCompactList}\small\item\em Инициализировать светодиод (структуру светодиода) \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_ga4b9572949326b050694cd55d0a7e5f6c}{GPIO\+\_\+\+LED\+\_\+\+On}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led)
|
||||
\begin{DoxyCompactList}\small\item\em Включить светодиод \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaadda2d4f021390a4e392210a5ace5357}{GPIO\+\_\+\+LED\+\_\+\+Off}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led)
|
||||
\begin{DoxyCompactList}\small\item\em Выключить светодиод \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gae78b570447d55a462a679a89dbaa8ea2}{GPIO\+\_\+\+LED\+\_\+\+Set}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led, uint8\+\_\+t led\+\_\+state)
|
||||
\begin{DoxyCompactList}\small\item\em Выставить светодиод по переменной \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaf22f44ecaf6a1932b47edc5a845b03a9}{GPIO\+\_\+\+LED\+\_\+\+Blink\+\_\+\+Start}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led, uint32\+\_\+t period)
|
||||
\begin{DoxyCompactList}\small\item\em Активировать моргание светодиодом \end{DoxyCompactList}\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaa00f20021781464af3dfe74aa3e59a0a}{GPIO\+\_\+\+LED\+\_\+\+Fading\+\_\+\+Start}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led, uint32\+\_\+t period)
|
||||
\begin{DoxyCompactList}\small\item\em Активировать моргание светодиодом \end{DoxyCompactList}\item
|
||||
void \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gad6e6189824406c4d472b6340c7f19bb2}{GPIO\+\_\+\+LED\+\_\+\+Dynamic\+\_\+\+Handle}} (\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}led)
|
||||
\begin{DoxyCompactList}\small\item\em Управление динамическими режимами свечения светодиода \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsubsection{Detailed Description}
|
||||
Функции для работы с GPIO, для управления светодиодом
|
||||
|
||||
|
||||
|
||||
\label{doc-enum-members}
|
||||
\Hypertarget{group___g_p_i_o___l_e_d_s_doc-enum-members}
|
||||
\doxysubsubsubsubsection{Enumeration Type Documentation}
|
||||
\Hypertarget{group___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1}\index{LED tools@{LED tools}!GPIO\_LEDStateTypeDef@{GPIO\_LEDStateTypeDef}}
|
||||
\index{GPIO\_LEDStateTypeDef@{GPIO\_LEDStateTypeDef}!LED tools@{LED tools}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LEDStateTypeDef}{GPIO\_LEDStateTypeDef}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1}
|
||||
enum \mbox{\hyperlink{group___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1}{GPIO\+\_\+\+LEDState\+Type\+Def}}}
|
||||
|
||||
|
||||
|
||||
Режимы работы светодиода
|
||||
|
||||
\begin{DoxyEnumFields}[2]{Enumerator}
|
||||
\raisebox{\heightof{T}}[0pt][0pt]{\index{LED\_IS\_OFF@{LED\_IS\_OFF}!LED tools@{LED tools}}\index{LED tools@{LED tools}!LED\_IS\_OFF@{LED\_IS\_OFF}}}\Hypertarget{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae}\label{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae}
|
||||
LED\+\_\+\+IS\+\_\+\+OFF&Светодиод выключен \\
|
||||
\hline
|
||||
|
||||
\raisebox{\heightof{T}}[0pt][0pt]{\index{LED\_IS\_ON@{LED\_IS\_ON}!LED tools@{LED tools}}\index{LED tools@{LED tools}!LED\_IS\_ON@{LED\_IS\_ON}}}\Hypertarget{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea}\label{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea}
|
||||
LED\+\_\+\+IS\+\_\+\+ON&Светодиод включен \\
|
||||
\hline
|
||||
|
||||
\raisebox{\heightof{T}}[0pt][0pt]{\index{LED\_IS\_BLINKING@{LED\_IS\_BLINKING}!LED tools@{LED tools}}\index{LED tools@{LED tools}!LED\_IS\_BLINKING@{LED\_IS\_BLINKING}}}\Hypertarget{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb}\label{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb}
|
||||
LED\+\_\+\+IS\+\_\+\+BLINKING&Моргание светодиодом \\
|
||||
\hline
|
||||
|
||||
\raisebox{\heightof{T}}[0pt][0pt]{\index{LED\_IS\_FADING@{LED\_IS\_FADING}!LED tools@{LED tools}}\index{LED tools@{LED tools}!LED\_IS\_FADING@{LED\_IS\_FADING}}}\Hypertarget{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b}\label{group___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b}
|
||||
LED\+\_\+\+IS\+\_\+\+FADING&Плавное моргание светодиодом \\
|
||||
\hline
|
||||
|
||||
\end{DoxyEnumFields}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00073}{73}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}.
|
||||
|
||||
|
||||
|
||||
\label{doc-func-members}
|
||||
\Hypertarget{group___g_p_i_o___l_e_d_s_doc-func-members}
|
||||
\doxysubsubsubsubsection{Function Documentation}
|
||||
\Hypertarget{group___g_p_i_o___l_e_d_s_gac936453c7a0841c0b17bcfdae4958084}\index{LED tools@{LED tools}!GPIO\_LED\_Init@{GPIO\_LED\_Init}}
|
||||
\index{GPIO\_LED\_Init@{GPIO\_LED\_Init}!LED tools@{LED tools}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LED\_Init()}{GPIO\_LED\_Init()}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___l_e_d_s_gac936453c7a0841c0b17bcfdae4958084}
|
||||
HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led}{, }\item[{GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}}]{GPIOx}{, }\item[{uint32\+\_\+t}]{GPIO\+\_\+\+PIN\+\_\+X}{, }\item[{uint8\+\_\+t}]{LED\+\_\+\+Active\+Level}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Инициализировать светодиод (структуру светодиода)
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em led} & Указатель на структуру светодиода \\
|
||||
\hline
|
||||
{\em GPIOx} & Указатель на структуру порта для светодиода \\
|
||||
\hline
|
||||
{\em GPIO\+\_\+\+PIN\+\_\+X} & Пин для светодиода \\
|
||||
\hline
|
||||
{\em LED\+\_\+\+Active\+Level} & Состояния пина, при котором светодиод будет включен \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00069}{69}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}.
|
||||
|
||||
\Hypertarget{group___g_p_i_o___l_e_d_s_ga4b9572949326b050694cd55d0a7e5f6c}\index{LED tools@{LED tools}!GPIO\_LED\_On@{GPIO\_LED\_On}}
|
||||
\index{GPIO\_LED\_On@{GPIO\_LED\_On}!LED tools@{LED tools}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LED\_On()}{GPIO\_LED\_On()}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___l_e_d_s_ga4b9572949326b050694cd55d0a7e5f6c}
|
||||
HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+On (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Включить светодиод
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em led} & Указатель на структуру светодиода \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
HAL Status
|
||||
\end{DoxyReturn}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00087}{87}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}.
|
||||
|
||||
\Hypertarget{group___g_p_i_o___l_e_d_s_gaadda2d4f021390a4e392210a5ace5357}\index{LED tools@{LED tools}!GPIO\_LED\_Off@{GPIO\_LED\_Off}}
|
||||
\index{GPIO\_LED\_Off@{GPIO\_LED\_Off}!LED tools@{LED tools}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LED\_Off()}{GPIO\_LED\_Off()}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___l_e_d_s_gaadda2d4f021390a4e392210a5ace5357}
|
||||
HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Off (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Выключить светодиод
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em led} & Указатель на структуру светодиода \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
HAL Status
|
||||
\end{DoxyReturn}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00105}{105}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}.
|
||||
|
||||
\Hypertarget{group___g_p_i_o___l_e_d_s_gae78b570447d55a462a679a89dbaa8ea2}\index{LED tools@{LED tools}!GPIO\_LED\_Set@{GPIO\_LED\_Set}}
|
||||
\index{GPIO\_LED\_Set@{GPIO\_LED\_Set}!LED tools@{LED tools}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LED\_Set()}{GPIO\_LED\_Set()}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___l_e_d_s_gae78b570447d55a462a679a89dbaa8ea2}
|
||||
HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led}{, }\item[{uint8\+\_\+t}]{led\+\_\+state}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Выставить светодиод по переменной
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em led} & Указатель на структуру светодиода \\
|
||||
\hline
|
||||
{\em led\+\_\+state} & Состояние светодиода \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
HAL Status
|
||||
\end{DoxyReturn}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00125}{125}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}.
|
||||
|
||||
\Hypertarget{group___g_p_i_o___l_e_d_s_gaf22f44ecaf6a1932b47edc5a845b03a9}\index{LED tools@{LED tools}!GPIO\_LED\_Blink\_Start@{GPIO\_LED\_Blink\_Start}}
|
||||
\index{GPIO\_LED\_Blink\_Start@{GPIO\_LED\_Blink\_Start}!LED tools@{LED tools}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LED\_Blink\_Start()}{GPIO\_LED\_Blink\_Start()}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___l_e_d_s_gaf22f44ecaf6a1932b47edc5a845b03a9}
|
||||
HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Blink\+\_\+\+Start (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led}{, }\item[{uint32\+\_\+t}]{period}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Активировать моргание светодиодом
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em led} & Указатель на структуру светодиода \\
|
||||
\hline
|
||||
{\em period} & Период плавного моргания светодиода \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
HAL Status
|
||||
\end{DoxyReturn}
|
||||
Функция ставит режим моргания, который после управляется в \doxylink{group___g_p_i_o___l_e_d_s_gad6e6189824406c4d472b6340c7f19bb2}{GPIO\+\_\+\+LED\+\_\+\+Dynamic\+\_\+\+Handle}
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00146}{146}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}.
|
||||
|
||||
\Hypertarget{group___g_p_i_o___l_e_d_s_gaa00f20021781464af3dfe74aa3e59a0a}\index{LED tools@{LED tools}!GPIO\_LED\_Fading\_Start@{GPIO\_LED\_Fading\_Start}}
|
||||
\index{GPIO\_LED\_Fading\_Start@{GPIO\_LED\_Fading\_Start}!LED tools@{LED tools}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LED\_Fading\_Start()}{GPIO\_LED\_Fading\_Start()}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___l_e_d_s_gaa00f20021781464af3dfe74aa3e59a0a}
|
||||
HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Fading\+\_\+\+Start (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led}{, }\item[{uint32\+\_\+t}]{period}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Активировать моргание светодиодом
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em led} & Указатель на структуру светодиода \\
|
||||
\hline
|
||||
{\em period} & Период плавного моргания светодиода \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
HAL Status
|
||||
\end{DoxyReturn}
|
||||
Функция ставит режим моргания, который после управляется в \doxylink{group___g_p_i_o___l_e_d_s_gad6e6189824406c4d472b6340c7f19bb2}{GPIO\+\_\+\+LED\+\_\+\+Dynamic\+\_\+\+Handle}
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00164}{164}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}.
|
||||
|
||||
\Hypertarget{group___g_p_i_o___l_e_d_s_gad6e6189824406c4d472b6340c7f19bb2}\index{LED tools@{LED tools}!GPIO\_LED\_Dynamic\_Handle@{GPIO\_LED\_Dynamic\_Handle}}
|
||||
\index{GPIO\_LED\_Dynamic\_Handle@{GPIO\_LED\_Dynamic\_Handle}!LED tools@{LED tools}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LED\_Dynamic\_Handle()}{GPIO\_LED\_Dynamic\_Handle()}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___l_e_d_s_gad6e6189824406c4d472b6340c7f19bb2}
|
||||
void GPIO\+\_\+\+LED\+\_\+\+Dynamic\+\_\+\+Handle (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Управление динамическими режимами свечения светодиода
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em Указатель} & на структуру светодиода\\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
Функция моргает/плавно моргает светодиодом в неблокирующем режиме Т.\+е. функцию надо вызывать постоянно, чтобы она мониторила тики и в нужный момент переключала светодиод
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00184}{184}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}.
|
||||
|
||||
79
Doc/latex/group___g_p_i_o___s_w_i_t_c_h.tex
Normal file
79
Doc/latex/group___g_p_i_o___s_w_i_t_c_h.tex
Normal file
@@ -0,0 +1,79 @@
|
||||
\doxysubsubsubsection{Switch tools }
|
||||
\hypertarget{group___g_p_i_o___s_w_i_t_c_h}{}\label{group___g_p_i_o___s_w_i_t_c_h}\index{Switch tools@{Switch tools}}
|
||||
|
||||
|
||||
Функции для работы с GPIO, как с кнопкой
|
||||
|
||||
|
||||
\doxysubsubsubsubsubsection*{Classes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
struct \mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Структура кнопки \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsubsection*{Functions}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7}{GPIO\+\_\+\+Switch\+\_\+\+Init}} (\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}sw, GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}GPIOx, uint32\+\_\+t GPIO\+\_\+\+PIN\+\_\+X, uint8\+\_\+t SW\+\_\+\+On\+\_\+\+State)
|
||||
\begin{DoxyCompactList}\small\item\em Инициализировать кнопку (структуру кнопки) \end{DoxyCompactList}\item
|
||||
uint8\+\_\+t \mbox{\hyperlink{group___g_p_i_o___s_w_i_t_c_h_ga4b6b8be19a9265bfee6b2bb8a68e988f}{GPIO\+\_\+\+Read\+\_\+\+Switch}} (\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}swstart)
|
||||
\begin{DoxyCompactList}\small\item\em Считать состоянии кнопки \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsubsection{Detailed Description}
|
||||
Функции для работы с GPIO, как с кнопкой
|
||||
|
||||
|
||||
|
||||
\label{doc-func-members}
|
||||
\Hypertarget{group___g_p_i_o___s_w_i_t_c_h_doc-func-members}
|
||||
\doxysubsubsubsubsection{Function Documentation}
|
||||
\Hypertarget{group___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7}\index{Switch tools@{Switch tools}!GPIO\_Switch\_Init@{GPIO\_Switch\_Init}}
|
||||
\index{GPIO\_Switch\_Init@{GPIO\_Switch\_Init}!Switch tools@{Switch tools}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_Switch\_Init()}{GPIO\_Switch\_Init()}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7}
|
||||
HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+Switch\+\_\+\+Init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{sw}{, }\item[{GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}}]{GPIOx}{, }\item[{uint32\+\_\+t}]{GPIO\+\_\+\+PIN\+\_\+X}{, }\item[{uint8\+\_\+t}]{SW\+\_\+\+Active\+Level}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Инициализировать кнопку (структуру кнопки)
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em sw} & Указатель на структуру кнопки \\
|
||||
\hline
|
||||
{\em GPIOx} & Указатель на структуру порта для кнопки \\
|
||||
\hline
|
||||
{\em GPIO\+\_\+\+PIN\+\_\+X} & Пин для кнопки \\
|
||||
\hline
|
||||
{\em SW\+\_\+\+Active\+Level} & Состояния пина, когда кнопка нажата \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
HAL Status
|
||||
\end{DoxyReturn}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00258}{258}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}.
|
||||
|
||||
\Hypertarget{group___g_p_i_o___s_w_i_t_c_h_ga4b6b8be19a9265bfee6b2bb8a68e988f}\index{Switch tools@{Switch tools}!GPIO\_Read\_Switch@{GPIO\_Read\_Switch}}
|
||||
\index{GPIO\_Read\_Switch@{GPIO\_Read\_Switch}!Switch tools@{Switch tools}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_Read\_Switch()}{GPIO\_Read\_Switch()}}
|
||||
{\footnotesize\ttfamily \label{group___g_p_i_o___s_w_i_t_c_h_ga4b6b8be19a9265bfee6b2bb8a68e988f}
|
||||
uint8\+\_\+t GPIO\+\_\+\+Read\+\_\+\+Switch (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{sw}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Считать состоянии кнопки
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em sw} & Указатель на структуру кнопки \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
1 -\/ если кнопка нажата, 0 -\/ если отжата
|
||||
\end{DoxyReturn}
|
||||
Функция включает в себя неблокирующую проверку на дребезг Т.\+е. функцию надо вызывать постоянно, чтобы она мониторила состояние кнопки
|
||||
|
||||
Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00276}{276}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}.
|
||||
|
||||
84
Doc/latex/group___l_i_b_s___c_o_n_f_i_g.tex
Normal file
84
Doc/latex/group___l_i_b_s___c_o_n_f_i_g.tex
Normal file
@@ -0,0 +1,84 @@
|
||||
\doxysubsubsection{Libraries configs }
|
||||
\hypertarget{group___l_i_b_s___c_o_n_f_i_g}{}\label{group___l_i_b_s___c_o_n_f_i_g}\index{Libraries configs@{Libraries configs}}
|
||||
|
||||
|
||||
Включенные трекеры и трассировки в МЗКТЭ
|
||||
|
||||
|
||||
\doxysubsubsubsubsection*{Macros}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be}{INCLUDE\+\_\+\+BIT\+\_\+\+ACCESS\+\_\+\+LIB}}
|
||||
\begin{DoxyCompactList}\small\item\em Подключить библиотеку с typedef с битовыми полями \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32}{INCLUDE\+\_\+\+TRACKERS\+\_\+\+LIB}}
|
||||
\begin{DoxyCompactList}\small\item\em Подключить библиотеку с трекерами \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga0a3ca94b616997069dd53e2c6c2687d7}{INCLUDE\+\_\+\+TRACE\+\_\+\+LIB}}
|
||||
\begin{DoxyCompactList}\small\item\em Подключить библиотеку с трейсами \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga181a46326e46b60afb160190832c7281}{INCLUDE\+\_\+\+GENERAL\+\_\+\+PERIPH\+\_\+\+LIBS}}
|
||||
\begin{DoxyCompactList}\small\item\em Подключить библиотеку с периферией \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsection{Detailed Description}
|
||||
Включенные трекеры и трассировки в МЗКТЭ
|
||||
|
||||
|
||||
|
||||
\label{doc-define-members}
|
||||
\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_doc-define-members}
|
||||
\doxysubsubsubsection{Macro Definition Documentation}
|
||||
\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be}\index{Libraries configs@{Libraries configs}!INCLUDE\_BIT\_ACCESS\_LIB@{INCLUDE\_BIT\_ACCESS\_LIB}}
|
||||
\index{INCLUDE\_BIT\_ACCESS\_LIB@{INCLUDE\_BIT\_ACCESS\_LIB}!Libraries configs@{Libraries configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{INCLUDE\_BIT\_ACCESS\_LIB}{INCLUDE\_BIT\_ACCESS\_LIB}}
|
||||
{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be}
|
||||
\#define INCLUDE\+\_\+\+BIT\+\_\+\+ACCESS\+\_\+\+LIB}
|
||||
|
||||
|
||||
|
||||
Подключить библиотеку с typedef с битовыми полями
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00069}{69}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32}\index{Libraries configs@{Libraries configs}!INCLUDE\_TRACKERS\_LIB@{INCLUDE\_TRACKERS\_LIB}}
|
||||
\index{INCLUDE\_TRACKERS\_LIB@{INCLUDE\_TRACKERS\_LIB}!Libraries configs@{Libraries configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{INCLUDE\_TRACKERS\_LIB}{INCLUDE\_TRACKERS\_LIB}}
|
||||
{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32}
|
||||
\#define INCLUDE\+\_\+\+TRACKERS\+\_\+\+LIB}
|
||||
|
||||
|
||||
|
||||
Подключить библиотеку с трекерами
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00070}{70}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga0a3ca94b616997069dd53e2c6c2687d7}\index{Libraries configs@{Libraries configs}!INCLUDE\_TRACE\_LIB@{INCLUDE\_TRACE\_LIB}}
|
||||
\index{INCLUDE\_TRACE\_LIB@{INCLUDE\_TRACE\_LIB}!Libraries configs@{Libraries configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{INCLUDE\_TRACE\_LIB}{INCLUDE\_TRACE\_LIB}}
|
||||
{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_ga0a3ca94b616997069dd53e2c6c2687d7}
|
||||
\#define INCLUDE\+\_\+\+TRACE\+\_\+\+LIB}
|
||||
|
||||
|
||||
|
||||
Подключить библиотеку с трейсами
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00071}{71}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga181a46326e46b60afb160190832c7281}\index{Libraries configs@{Libraries configs}!INCLUDE\_GENERAL\_PERIPH\_LIBS@{INCLUDE\_GENERAL\_PERIPH\_LIBS}}
|
||||
\index{INCLUDE\_GENERAL\_PERIPH\_LIBS@{INCLUDE\_GENERAL\_PERIPH\_LIBS}!Libraries configs@{Libraries configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{INCLUDE\_GENERAL\_PERIPH\_LIBS}{INCLUDE\_GENERAL\_PERIPH\_LIBS}}
|
||||
{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_ga181a46326e46b60afb160190832c7281}
|
||||
\#define INCLUDE\+\_\+\+GENERAL\+\_\+\+PERIPH\+\_\+\+LIBS}
|
||||
|
||||
|
||||
|
||||
Подключить библиотеку с периферией
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00072}{72}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
24
Doc/latex/group___m_y___l_i_b_s___g_p_i_o.tex
Normal file
24
Doc/latex/group___m_y___l_i_b_s___g_p_i_o.tex
Normal file
@@ -0,0 +1,24 @@
|
||||
\doxysubsubsection{GPIO Tools }
|
||||
\hypertarget{group___m_y___l_i_b_s___g_p_i_o}{}\label{group___m_y___l_i_b_s___g_p_i_o}\index{GPIO Tools@{GPIO Tools}}
|
||||
|
||||
|
||||
Функции и макросы для удобной работы с GPIO.
|
||||
|
||||
|
||||
\doxysubsubsubsubsection*{Topics}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\mbox{\hyperlink{group___g_p_i_o___g_e_n_e_r_a_l}{General tools}}
|
||||
\begin{DoxyCompactList}\small\item\em Общие функции/макросы для работы с GPIO. \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___g_p_i_o___s_w_i_t_c_h}{Switch tools}}
|
||||
\begin{DoxyCompactList}\small\item\em Функции для работы с GPIO, как с кнопкой \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___g_p_i_o___l_e_d_s}{LED tools}}
|
||||
\begin{DoxyCompactList}\small\item\em Функции для работы с GPIO, для управления светодиодом \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsection{Detailed Description}
|
||||
Функции и макросы для удобной работы с GPIO.
|
||||
|
||||
\input{group___g_p_i_o___g_e_n_e_r_a_l}
|
||||
\input{group___g_p_i_o___s_w_i_t_c_h}
|
||||
\input{group___g_p_i_o___l_e_d_s}
|
||||
24
Doc/latex/group___m_y_l_i_b_s___a_l_l.tex
Normal file
24
Doc/latex/group___m_y_l_i_b_s___a_l_l.tex
Normal file
@@ -0,0 +1,24 @@
|
||||
\doxysection{My Libs }
|
||||
\hypertarget{group___m_y_l_i_b_s___a_l_l}{}\label{group___m_y_l_i_b_s___a_l_l}\index{My Libs@{My Libs}}
|
||||
|
||||
|
||||
Все используемые My\+Libs библиотеки
|
||||
|
||||
|
||||
\doxysubsubsection*{Topics}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\mbox{\hyperlink{group___m_y_l_i_b_s___c_o_n_f_i_g}{Configs}}
|
||||
\begin{DoxyCompactList}\small\item\em Конфигурации для библиотек My\+Libs. \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___m_y_l_i_b_s___d_e_f_i_n_e_s}{General Defines}}
|
||||
\begin{DoxyCompactList}\small\item\em Общие макросы и typedef\textquotesingle{}ы, используемые по всему проекту \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l}{Peripheral}}
|
||||
\begin{DoxyCompactList}\small\item\em Модули для управления периферией \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsection{Detailed Description}
|
||||
Все используемые My\+Libs библиотеки
|
||||
|
||||
\input{group___m_y_l_i_b_s___c_o_n_f_i_g}
|
||||
\input{group___m_y_l_i_b_s___d_e_f_i_n_e_s}
|
||||
\input{group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l}
|
||||
21
Doc/latex/group___m_y_l_i_b_s___c_o_n_f_i_g.tex
Normal file
21
Doc/latex/group___m_y_l_i_b_s___c_o_n_f_i_g.tex
Normal file
@@ -0,0 +1,21 @@
|
||||
\doxysubsection{Configs }
|
||||
\hypertarget{group___m_y_l_i_b_s___c_o_n_f_i_g}{}\label{group___m_y_l_i_b_s___c_o_n_f_i_g}\index{Configs@{Configs}}
|
||||
|
||||
|
||||
Конфигурации для библиотек My\+Libs.
|
||||
|
||||
|
||||
\doxysubsubsubsection*{Topics}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g}{Trace configs}}
|
||||
\begin{DoxyCompactList}\small\item\em Конфигурация трекеров и трассировки \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g}{Libraries configs}}
|
||||
\begin{DoxyCompactList}\small\item\em Включенные трекеры и трассировки в МЗКТЭ \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsection{Detailed Description}
|
||||
Конфигурации для библиотек My\+Libs.
|
||||
|
||||
\input{group___t_r_a_c_e___c_o_n_f_i_g}
|
||||
\input{group___l_i_b_s___c_o_n_f_i_g}
|
||||
33
Doc/latex/group___m_y_l_i_b_s___d_e_f_i_n_e_s.tex
Normal file
33
Doc/latex/group___m_y_l_i_b_s___d_e_f_i_n_e_s.tex
Normal file
@@ -0,0 +1,33 @@
|
||||
\doxysubsection{General Defines }
|
||||
\hypertarget{group___m_y_l_i_b_s___d_e_f_i_n_e_s}{}\label{group___m_y_l_i_b_s___d_e_f_i_n_e_s}\index{General Defines@{General Defines}}
|
||||
|
||||
|
||||
Общие макросы и typedef\textquotesingle{}ы, используемые по всему проекту
|
||||
|
||||
|
||||
\doxysubsubsubsection*{Topics}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}{Bit access defines}}
|
||||
\begin{DoxyCompactList}\small\item\em Макросы и typedef\textquotesingle{}ы для работы с битами в unsigned типах. \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s}{Error Handler defines}}
|
||||
\begin{DoxyCompactList}\small\item\em Дефайны для обработки ошибок \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s}{Delays defines}}
|
||||
\begin{DoxyCompactList}\small\item\em Макросы и определения для работы с задержками в миллисекундах. \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s}{Utils defines}}
|
||||
\begin{DoxyCompactList}\small\item\em Общие вспомогательные макросы \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___t_r_a_c_e}{Trace defines}}
|
||||
\begin{DoxyCompactList}\small\item\em Дефайны для работы с трассировкой \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___t_r_a_c_k_e_r_s}{Trackers defines}}
|
||||
\begin{DoxyCompactList}\small\item\em Дефайны для работы с трекерами \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsection{Detailed Description}
|
||||
Общие макросы и typedef\textquotesingle{}ы, используемые по всему проекту
|
||||
|
||||
\input{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}
|
||||
\input{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s}
|
||||
\input{group___d_e_l_a_y_s___d_e_f_i_n_e_s}
|
||||
\input{group___u_t_i_l_s___d_e_f_i_n_e_s}
|
||||
\input{group___t_r_a_c_e}
|
||||
\input{group___t_r_a_c_k_e_r_s}
|
||||
18
Doc/latex/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.tex
Normal file
18
Doc/latex/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.tex
Normal file
@@ -0,0 +1,18 @@
|
||||
\doxysubsection{Peripheral }
|
||||
\hypertarget{group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l}{}\label{group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l}\index{Peripheral@{Peripheral}}
|
||||
|
||||
|
||||
Модули для управления периферией
|
||||
|
||||
|
||||
\doxysubsubsubsection*{Topics}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\mbox{\hyperlink{group___m_y___l_i_b_s___g_p_i_o}{GPIO Tools}}
|
||||
\begin{DoxyCompactList}\small\item\em Функции и макросы для удобной работы с GPIO. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsection{Detailed Description}
|
||||
Модули для управления периферией
|
||||
|
||||
\input{group___m_y___l_i_b_s___g_p_i_o}
|
||||
27
Doc/latex/group___t_r_a_c_e.tex
Normal file
27
Doc/latex/group___t_r_a_c_e.tex
Normal file
@@ -0,0 +1,27 @@
|
||||
\doxysubsubsection{Trace defines }
|
||||
\hypertarget{group___t_r_a_c_e}{}\label{group___t_r_a_c_e}\index{Trace defines@{Trace defines}}
|
||||
|
||||
|
||||
Дефайны для работы с трассировкой
|
||||
|
||||
|
||||
\doxysubsubsubsubsection*{Topics}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l}{Serial trace defines}}
|
||||
\begin{DoxyCompactList}\small\item\em Дефайны для работы с serial трассировкой (SWO, RTT) \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___t_r_a_c_e___g_p_i_o}{GPIO trace defines}}
|
||||
\begin{DoxyCompactList}\small\item\em Дефайны для работы с GPIO трассировкой \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___t_r_a_c_e___r_t_t___f_l_a_s_h}{Flash RTT Buffer}}
|
||||
\begin{DoxyCompactList}\small\item\em Макросы и функции для сохранения/чтения RTT буфера в Flash. \end{DoxyCompactList}\item
|
||||
\mbox{\hyperlink{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t}{Hardfault trace defines}}
|
||||
\begin{DoxyCompactList}\small\item\em Модуль трассировки Hard\+Fault с возможностью сохранения RTT буфера во Flash. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsection{Detailed Description}
|
||||
Дефайны для работы с трассировкой
|
||||
|
||||
\input{group___t_r_a_c_e___s_e_r_i_a_l}
|
||||
\input{group___t_r_a_c_e___g_p_i_o}
|
||||
\input{group___t_r_a_c_e___r_t_t___f_l_a_s_h}
|
||||
\input{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t}
|
||||
281
Doc/latex/group___t_r_a_c_e___c_o_n_f_i_g.tex
Normal file
281
Doc/latex/group___t_r_a_c_e___c_o_n_f_i_g.tex
Normal file
@@ -0,0 +1,281 @@
|
||||
\doxysubsubsection{Trace configs }
|
||||
\hypertarget{group___t_r_a_c_e___c_o_n_f_i_g}{}\label{group___t_r_a_c_e___c_o_n_f_i_g}\index{Trace configs@{Trace configs}}
|
||||
|
||||
|
||||
Конфигурация трекеров и трассировки
|
||||
|
||||
|
||||
\doxysubsubsubsubsection*{Macros}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}{TRACKERS\+\_\+\+ENABLE}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить трекеры \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga76936505ca200d2e61226b7ba68f27c6}{SERIAL\+\_\+\+TRACE\+\_\+\+ENABLE}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить serial трассировку \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga00ff2175bdc1fb11c8ec970ea3010dd8}{RTT\+\_\+\+TRACE\+\_\+\+ENABLE}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить serial трассировку через RTT. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gab8db9704b5d11858aa879689b9d36336}{SWO\+\_\+\+TRACE\+\_\+\+ENABLE}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить serial трассировку через SWO. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}{LOG\+\_\+\+LEVEL}}~1
|
||||
\begin{DoxyCompactList}\small\item\em Уровень log serial трассировки \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}{log\+\_\+printf}. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE}}~1024
|
||||
\begin{DoxyCompactList}\small\item\em Размер буфера RTT в Flash. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga3bc1b76864e1d32cbdd174d4caae7724}{RTT\+\_\+\+FLASH\+\_\+\+SECTOR}}~FLASH\+\_\+\+SECTOR\+\_\+11
|
||||
\begin{DoxyCompactList}\small\item\em Сектор FLASH куда положится RTT буфер \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga8e56f75d3ab8a89ddde1404ae23c3297}{RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+START}}~0x080\+E0000
|
||||
\begin{DoxyCompactList}\small\item\em Начало сектора RTT\+\_\+\+FLASH\+\_\+\+SECTOR. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gafeca0be3688dea07ff443f894668003d}{RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+END}}~0x080\+FFFFF
|
||||
\begin{DoxyCompactList}\small\item\em Конец сектора RTT\+\_\+\+FLASH\+\_\+\+SECTOR. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga47f454f804b4dbc26cae079e8d8641e6}{HARDFAULT\+\_\+\+SERIAL\+\_\+\+TRACE}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить обработку и serial трассировку Hardfault. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gadc960255719c7eff4bdfaa850be9b313}{HF\+\_\+\+RTT\+\_\+\+TAG\+\_\+\+BASE}}~0x\+DEAD0000
|
||||
\begin{DoxyCompactList}\small\item\em базовый тег для Hard\+Fault \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gafcc7ea03d4df8f1909e580b519a7f3ca}{HF\+\_\+\+RTT\+\_\+\+TAIL\+\_\+\+SIZE}}~\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE}}
|
||||
\begin{DoxyCompactList}\small\item\em Размер буфера RTT, который сохранится при Hardfault. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gaa31234688b333a505aaa57b8ecdedf5b}{HF\+\_\+\+STACK\+\_\+\+DUMP\+\_\+\+WORDS}}~32
|
||||
\begin{DoxyCompactList}\small\item\em Сколько слов стека будет проанализировано во время Hardfault. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga0c602733a4a359bf8c095d71cd4d0f63}{HF\+\_\+\+FLASH\+\_\+\+ADDR}}~((uint32\+\_\+t)0x080\+FF000)
|
||||
\begin{DoxyCompactList}\small\item\em Адрес FLASH куда положится RTT буфер \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga92d0d14732edb7dfa21d483304bdb051}{HF\+\_\+\+RAM\+\_\+\+END}}~0x20030000
|
||||
\begin{DoxyCompactList}\small\item\em Конец RAM памяти (чтобы во время анализа стека не выйти за пределы) \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}{GPIO\+\_\+\+TRACE\+\_\+\+ENABLE}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить GPIO трассировку \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsection{Detailed Description}
|
||||
Конфигурация трекеров и трассировки
|
||||
|
||||
|
||||
|
||||
\label{doc-define-members}
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_doc-define-members}
|
||||
\doxysubsubsubsection{Macro Definition Documentation}
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}\index{Trace configs@{Trace configs}!TRACKERS\_ENABLE@{TRACKERS\_ENABLE}}
|
||||
\index{TRACKERS\_ENABLE@{TRACKERS\_ENABLE}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TRACKERS\_ENABLE}{TRACKERS\_ENABLE}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}
|
||||
\#define TRACKERS\+\_\+\+ENABLE}
|
||||
|
||||
|
||||
|
||||
Включить трекеры
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00029}{29}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga76936505ca200d2e61226b7ba68f27c6}\index{Trace configs@{Trace configs}!SERIAL\_TRACE\_ENABLE@{SERIAL\_TRACE\_ENABLE}}
|
||||
\index{SERIAL\_TRACE\_ENABLE@{SERIAL\_TRACE\_ENABLE}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{SERIAL\_TRACE\_ENABLE}{SERIAL\_TRACE\_ENABLE}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga76936505ca200d2e61226b7ba68f27c6}
|
||||
\#define SERIAL\+\_\+\+TRACE\+\_\+\+ENABLE}
|
||||
|
||||
|
||||
|
||||
Включить serial трассировку
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00030}{30}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga00ff2175bdc1fb11c8ec970ea3010dd8}\index{Trace configs@{Trace configs}!RTT\_TRACE\_ENABLE@{RTT\_TRACE\_ENABLE}}
|
||||
\index{RTT\_TRACE\_ENABLE@{RTT\_TRACE\_ENABLE}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{RTT\_TRACE\_ENABLE}{RTT\_TRACE\_ENABLE}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga00ff2175bdc1fb11c8ec970ea3010dd8}
|
||||
\#define RTT\+\_\+\+TRACE\+\_\+\+ENABLE}
|
||||
|
||||
|
||||
|
||||
Включить serial трассировку через RTT.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00031}{31}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gab8db9704b5d11858aa879689b9d36336}\index{Trace configs@{Trace configs}!SWO\_TRACE\_ENABLE@{SWO\_TRACE\_ENABLE}}
|
||||
\index{SWO\_TRACE\_ENABLE@{SWO\_TRACE\_ENABLE}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{SWO\_TRACE\_ENABLE}{SWO\_TRACE\_ENABLE}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gab8db9704b5d11858aa879689b9d36336}
|
||||
\#define SWO\+\_\+\+TRACE\+\_\+\+ENABLE}
|
||||
|
||||
|
||||
|
||||
Включить serial трассировку через SWO.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00032}{32}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}\index{Trace configs@{Trace configs}!LOG\_LEVEL@{LOG\_LEVEL}}
|
||||
\index{LOG\_LEVEL@{LOG\_LEVEL}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{LOG\_LEVEL}{LOG\_LEVEL}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}
|
||||
\#define LOG\+\_\+\+LEVEL~1}
|
||||
|
||||
|
||||
|
||||
Уровень log serial трассировки \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}{log\+\_\+printf}.
|
||||
|
||||
|
||||
\begin{DoxyItemize}
|
||||
\item LOG\+\_\+\+LEVEL == 0 -\/ логирование отключено (макрос пустой)
|
||||
\item LOG\+\_\+\+LEVEL == 1 -\/ выводится время и TAG
|
||||
\item LOG\+\_\+\+LEVEL \texorpdfstring{$>$}{>}= 2 -\/ выводится время, TAG, имя файла и номер строки
|
||||
\end{DoxyItemize}
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00039}{39}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}\index{Trace configs@{Trace configs}!RTT\_FLASH\_BUFFER\_SIZE@{RTT\_FLASH\_BUFFER\_SIZE}}
|
||||
\index{RTT\_FLASH\_BUFFER\_SIZE@{RTT\_FLASH\_BUFFER\_SIZE}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{RTT\_FLASH\_BUFFER\_SIZE}{RTT\_FLASH\_BUFFER\_SIZE}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}
|
||||
\#define RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE~1024}
|
||||
|
||||
|
||||
|
||||
Размер буфера RTT в Flash.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00041}{41}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga3bc1b76864e1d32cbdd174d4caae7724}\index{Trace configs@{Trace configs}!RTT\_FLASH\_SECTOR@{RTT\_FLASH\_SECTOR}}
|
||||
\index{RTT\_FLASH\_SECTOR@{RTT\_FLASH\_SECTOR}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{RTT\_FLASH\_SECTOR}{RTT\_FLASH\_SECTOR}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga3bc1b76864e1d32cbdd174d4caae7724}
|
||||
\#define RTT\+\_\+\+FLASH\+\_\+\+SECTOR~FLASH\+\_\+\+SECTOR\+\_\+11}
|
||||
|
||||
|
||||
|
||||
Сектор FLASH куда положится RTT буфер
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00042}{42}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga8e56f75d3ab8a89ddde1404ae23c3297}\index{Trace configs@{Trace configs}!RTT\_FLASH\_SECTOR\_START@{RTT\_FLASH\_SECTOR\_START}}
|
||||
\index{RTT\_FLASH\_SECTOR\_START@{RTT\_FLASH\_SECTOR\_START}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{RTT\_FLASH\_SECTOR\_START}{RTT\_FLASH\_SECTOR\_START}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga8e56f75d3ab8a89ddde1404ae23c3297}
|
||||
\#define RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+START~0x080\+E0000}
|
||||
|
||||
|
||||
|
||||
Начало сектора RTT\+\_\+\+FLASH\+\_\+\+SECTOR.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00043}{43}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gafeca0be3688dea07ff443f894668003d}\index{Trace configs@{Trace configs}!RTT\_FLASH\_SECTOR\_END@{RTT\_FLASH\_SECTOR\_END}}
|
||||
\index{RTT\_FLASH\_SECTOR\_END@{RTT\_FLASH\_SECTOR\_END}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{RTT\_FLASH\_SECTOR\_END}{RTT\_FLASH\_SECTOR\_END}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gafeca0be3688dea07ff443f894668003d}
|
||||
\#define RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+END~0x080\+FFFFF}
|
||||
|
||||
|
||||
|
||||
Конец сектора RTT\+\_\+\+FLASH\+\_\+\+SECTOR.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00044}{44}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga47f454f804b4dbc26cae079e8d8641e6}\index{Trace configs@{Trace configs}!HARDFAULT\_SERIAL\_TRACE@{HARDFAULT\_SERIAL\_TRACE}}
|
||||
\index{HARDFAULT\_SERIAL\_TRACE@{HARDFAULT\_SERIAL\_TRACE}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{HARDFAULT\_SERIAL\_TRACE}{HARDFAULT\_SERIAL\_TRACE}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga47f454f804b4dbc26cae079e8d8641e6}
|
||||
\#define HARDFAULT\+\_\+\+SERIAL\+\_\+\+TRACE}
|
||||
|
||||
|
||||
|
||||
Включить обработку и serial трассировку Hardfault.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00047}{47}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gadc960255719c7eff4bdfaa850be9b313}\index{Trace configs@{Trace configs}!HF\_RTT\_TAG\_BASE@{HF\_RTT\_TAG\_BASE}}
|
||||
\index{HF\_RTT\_TAG\_BASE@{HF\_RTT\_TAG\_BASE}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{HF\_RTT\_TAG\_BASE}{HF\_RTT\_TAG\_BASE}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gadc960255719c7eff4bdfaa850be9b313}
|
||||
\#define HF\+\_\+\+RTT\+\_\+\+TAG\+\_\+\+BASE~0x\+DEAD0000}
|
||||
|
||||
|
||||
|
||||
базовый тег для Hard\+Fault
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00048}{48}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gafcc7ea03d4df8f1909e580b519a7f3ca}\index{Trace configs@{Trace configs}!HF\_RTT\_TAIL\_SIZE@{HF\_RTT\_TAIL\_SIZE}}
|
||||
\index{HF\_RTT\_TAIL\_SIZE@{HF\_RTT\_TAIL\_SIZE}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{HF\_RTT\_TAIL\_SIZE}{HF\_RTT\_TAIL\_SIZE}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gafcc7ea03d4df8f1909e580b519a7f3ca}
|
||||
\#define HF\+\_\+\+RTT\+\_\+\+TAIL\+\_\+\+SIZE~\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE}}}
|
||||
|
||||
|
||||
|
||||
Размер буфера RTT, который сохранится при Hardfault.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00049}{49}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gaa31234688b333a505aaa57b8ecdedf5b}\index{Trace configs@{Trace configs}!HF\_STACK\_DUMP\_WORDS@{HF\_STACK\_DUMP\_WORDS}}
|
||||
\index{HF\_STACK\_DUMP\_WORDS@{HF\_STACK\_DUMP\_WORDS}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{HF\_STACK\_DUMP\_WORDS}{HF\_STACK\_DUMP\_WORDS}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gaa31234688b333a505aaa57b8ecdedf5b}
|
||||
\#define HF\+\_\+\+STACK\+\_\+\+DUMP\+\_\+\+WORDS~32}
|
||||
|
||||
|
||||
|
||||
Сколько слов стека будет проанализировано во время Hardfault.
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00050}{50}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga0c602733a4a359bf8c095d71cd4d0f63}\index{Trace configs@{Trace configs}!HF\_FLASH\_ADDR@{HF\_FLASH\_ADDR}}
|
||||
\index{HF\_FLASH\_ADDR@{HF\_FLASH\_ADDR}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{HF\_FLASH\_ADDR}{HF\_FLASH\_ADDR}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga0c602733a4a359bf8c095d71cd4d0f63}
|
||||
\#define HF\+\_\+\+FLASH\+\_\+\+ADDR~((uint32\+\_\+t)0x080\+FF000)}
|
||||
|
||||
|
||||
|
||||
Адрес FLASH куда положится RTT буфер
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00051}{51}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga92d0d14732edb7dfa21d483304bdb051}\index{Trace configs@{Trace configs}!HF\_RAM\_END@{HF\_RAM\_END}}
|
||||
\index{HF\_RAM\_END@{HF\_RAM\_END}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{HF\_RAM\_END}{HF\_RAM\_END}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga92d0d14732edb7dfa21d483304bdb051}
|
||||
\#define HF\+\_\+\+RAM\+\_\+\+END~0x20030000}
|
||||
|
||||
|
||||
|
||||
Конец RAM памяти (чтобы во время анализа стека не выйти за пределы)
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00052}{52}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}\index{Trace configs@{Trace configs}!GPIO\_TRACE\_ENABLE@{GPIO\_TRACE\_ENABLE}}
|
||||
\index{GPIO\_TRACE\_ENABLE@{GPIO\_TRACE\_ENABLE}!Trace configs@{Trace configs}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{GPIO\_TRACE\_ENABLE}{GPIO\_TRACE\_ENABLE}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}
|
||||
\#define GPIO\+\_\+\+TRACE\+\_\+\+ENABLE}
|
||||
|
||||
|
||||
|
||||
Включить GPIO трассировку
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00054}{54}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
89
Doc/latex/group___t_r_a_c_e___g_p_i_o.tex
Normal file
89
Doc/latex/group___t_r_a_c_e___g_p_i_o.tex
Normal file
@@ -0,0 +1,89 @@
|
||||
\doxysubsubsubsection{GPIO trace defines }
|
||||
\hypertarget{group___t_r_a_c_e___g_p_i_o}{}\label{group___t_r_a_c_e___g_p_i_o}\index{GPIO trace defines@{GPIO trace defines}}
|
||||
|
||||
|
||||
Дефайны для работы с GPIO трассировкой
|
||||
|
||||
|
||||
\doxysubsubsubsubsubsection*{Macros}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a}{TRACE\+\_\+\+GPIO\+\_\+\+RESET}}(\+\_\+gpio\+\_\+, \+\_\+pin\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Сбросить указанную ножку GPIO. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb}{TRACE\+\_\+\+GPIO\+\_\+\+SET}}(\+\_\+gpio\+\_\+, \+\_\+pin\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Установить указанную ножку GPIO. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsubsection{Detailed Description}
|
||||
Дефайны для работы с GPIO трассировкой
|
||||
|
||||
Определяется дефайны для работы с GPIO трассировкой\+:
|
||||
\begin{DoxyItemize}
|
||||
\item \doxylink{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a}{TRACE\+\_\+\+GPIO\+\_\+\+RESET()} -\/ для сброса ножки GPIO (через BSRR)
|
||||
\item \doxylink{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb}{TRACE\+\_\+\+GPIO\+\_\+\+SET()} -\/ для выставления ножки GPIO (через BSRR)
|
||||
\item Если трассировка \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}{GPIO\+\_\+\+TRACE\+\_\+\+ENABLE} отключена, то все дефайны определяются как \textquotesingle{}ничего\textquotesingle{} и на производительность кода не влияют
|
||||
\end{DoxyItemize}
|
||||
|
||||
\label{doc-define-members}
|
||||
\Hypertarget{group___t_r_a_c_e___g_p_i_o_doc-define-members}
|
||||
\doxysubsubsubsubsection{Macro Definition Documentation}
|
||||
\Hypertarget{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a}\index{GPIO trace defines@{GPIO trace defines}!TRACE\_GPIO\_RESET@{TRACE\_GPIO\_RESET}}
|
||||
\index{TRACE\_GPIO\_RESET@{TRACE\_GPIO\_RESET}!GPIO trace defines@{GPIO trace defines}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{TRACE\_GPIO\_RESET}{TRACE\_GPIO\_RESET}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a}
|
||||
\#define TRACE\+\_\+\+GPIO\+\_\+\+RESET(\begin{DoxyParamCaption}\item[{}]{\+\_\+gpio\+\_\+}{, }\item[{}]{\+\_\+pin\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\_gpio\_)-\/>BSRR\ =\ ((\_pin\_)<<16)}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Сбросить указанную ножку GPIO.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em \+\_\+gpio\+\_\+} & Указатель на структуру GPIO (напр. GPIOA) \\
|
||||
\hline
|
||||
{\em \+\_\+pin\+\_\+} & Номер ножки (напр. GPIO\+\_\+\+PIN\+\_\+0)\\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
Варианты реализации\+:
|
||||
\begin{DoxyItemize}
|
||||
\item GPIO\+\_\+\+TRACE\+\_\+\+ENABLE не определён -\/ макрос пустой
|
||||
\item GPIO\+\_\+\+TRACE\+\_\+\+ENABLE определён -\/ устанавливает бит сброса через BSRR (({\itshape pin})\texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<}16)
|
||||
\end{DoxyItemize}
|
||||
|
||||
Definition at line \mbox{\hyperlink{trace_8h_source_l00140}{140}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb}\index{GPIO trace defines@{GPIO trace defines}!TRACE\_GPIO\_SET@{TRACE\_GPIO\_SET}}
|
||||
\index{TRACE\_GPIO\_SET@{TRACE\_GPIO\_SET}!GPIO trace defines@{GPIO trace defines}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{TRACE\_GPIO\_SET}{TRACE\_GPIO\_SET}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb}
|
||||
\#define TRACE\+\_\+\+GPIO\+\_\+\+SET(\begin{DoxyParamCaption}\item[{}]{\+\_\+gpio\+\_\+}{, }\item[{}]{\+\_\+pin\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\_gpio\_)-\/>BSRR\ =\ (((\_pin\_)))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Установить указанную ножку GPIO.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em \+\_\+gpio\+\_\+} & Указатель на структуру GPIO (например GPIOA) \\
|
||||
\hline
|
||||
{\em \+\_\+pin\+\_\+} & Номер ножки (напр. GPIO\+\_\+\+PIN\+\_\+0)\\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
Варианты реализации\+:
|
||||
\begin{DoxyItemize}
|
||||
\item GPIO\+\_\+\+TRACE\+\_\+\+ENABLE не определён -\/ макрос пустой
|
||||
\item GPIO\+\_\+\+TRACE\+\_\+\+ENABLE определён -\/ устанавливает бит установки через BSRR ({\itshape pin})
|
||||
\end{DoxyItemize}
|
||||
|
||||
Definition at line \mbox{\hyperlink{trace_8h_source_l00139}{139}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
|
||||
|
||||
117
Doc/latex/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.tex
Normal file
117
Doc/latex/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.tex
Normal file
@@ -0,0 +1,117 @@
|
||||
\doxysubsubsubsection{Hardfault trace defines }
|
||||
\hypertarget{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t}{}\label{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t}\index{Hardfault trace defines@{Hardfault trace defines}}
|
||||
|
||||
|
||||
Модуль трассировки Hard\+Fault с возможностью сохранения RTT буфера во Flash.
|
||||
|
||||
|
||||
\doxysubsubsubsubsubsection*{Classes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
struct \mbox{\hyperlink{struct_h_f___stack_frame__t}{HF\+\_\+\+Stack\+Frame\+\_\+t}}
|
||||
\begin{DoxyCompactList}\small\item\em Контекст стек-\/фрейма процессора при Hard\+Fault. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsubsection*{Functions}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int \mbox{\hyperlink{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_ga03f8b6f3b537ee1c8e91065c60db504f}{HF\+\_\+\+Check\+Recovered}} (int erase)
|
||||
\begin{DoxyCompactList}\small\item\em Проверка и вывод последнего Hard\+Fault-\/трейса из Flash. \end{DoxyCompactList}\item
|
||||
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE void \mbox{\hyperlink{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_gadd8e10e7ec3b0204f7f92062ecd452f7}{HF\+\_\+\+Handle\+Fault}} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Обработчик Hard\+Fault. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsubsection{Detailed Description}
|
||||
Модуль трассировки Hard\+Fault с возможностью сохранения RTT буфера во Flash.
|
||||
|
||||
Этот модуль позволяет сохранять контекст процессора и последние символы RTT буфера при возникновении Hard\+Fault.
|
||||
|
||||
Механизм работы\+:
|
||||
\begin{DoxyItemize}
|
||||
\item При срабатывании Hard\+Fault вызывается \doxylink{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_gadd8e10e7ec3b0204f7f92062ecd452f7}{HF\+\_\+\+Handle\+Fault()}, который\+:
|
||||
\begin{DoxyEnumerate}
|
||||
\item Получает указатель на стек, где произошёл Hard\+Fault (MSP или PSP).
|
||||
\item Выводит значения регистров R0-\/\+R3, R12, LR, PC, PSR и системных регистров SCB.
|
||||
\item Формирует строку с регистрами и копирует последние символы RTT буфера.
|
||||
\item Сохраняет данные во Flash с базовым тегом HF\+\_\+\+RTT\+\_\+\+TAG\+\_\+\+BASE.
|
||||
\end{DoxyEnumerate}
|
||||
\item Для восстановления последнего Hard\+Fault используется \doxylink{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_ga03f8b6f3b537ee1c8e91065c60db504f}{HF\+\_\+\+Check\+Recovered()}, который\+:
|
||||
\begin{DoxyEnumerate}
|
||||
\item Читает запись во Flash по базовому тегу.
|
||||
\item Выводит сохранённый RTT буфер и контекст регистров.
|
||||
\item Опционально стирает Flash после восстановления.
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\textcolor{keywordtype}{void}\ Hardfault()}
|
||||
\DoxyCodeLine{\{}
|
||||
\DoxyCodeLine{\ \ \mbox{\hyperlink{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_gadd8e10e7ec3b0204f7f92062ecd452f7}{HF\_HandleFault}}();}
|
||||
\DoxyCodeLine{\ \ NVIC\_SystemReset();}
|
||||
\DoxyCodeLine{\}}
|
||||
\DoxyCodeLine{}
|
||||
\DoxyCodeLine{\textcolor{keywordtype}{int}\ main()}
|
||||
\DoxyCodeLine{\{}
|
||||
\DoxyCodeLine{\ \ \textcolor{keywordflow}{if}(\mbox{\hyperlink{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_ga03f8b6f3b537ee1c8e91065c60db504f}{HF\_CheckRecovered}}(0))}
|
||||
\DoxyCodeLine{\ \ \{}
|
||||
\DoxyCodeLine{\ \ \ \ \textcolor{comment}{//set\ hardfault\ error}}
|
||||
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga8d8c6850e32b42871faefce3352012d1}{RTT\_EraseFlash}}();\ \textcolor{comment}{//\ erase\ rtt\ flash\ after\ message\ readed}}
|
||||
\DoxyCodeLine{\ \ \}}
|
||||
\DoxyCodeLine{\}\ \ }
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
\end{DoxyEnumerate}
|
||||
\end{DoxyItemize}
|
||||
|
||||
\label{doc-func-members}
|
||||
\Hypertarget{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_doc-func-members}
|
||||
\doxysubsubsubsubsection{Function Documentation}
|
||||
\Hypertarget{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_ga03f8b6f3b537ee1c8e91065c60db504f}\index{Hardfault trace defines@{Hardfault trace defines}!HF\_CheckRecovered@{HF\_CheckRecovered}}
|
||||
\index{HF\_CheckRecovered@{HF\_CheckRecovered}!Hardfault trace defines@{Hardfault trace defines}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{HF\_CheckRecovered()}{HF\_CheckRecovered()}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_ga03f8b6f3b537ee1c8e91065c60db504f}
|
||||
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int HF\+\_\+\+Check\+Recovered (\begin{DoxyParamCaption}\item[{int}]{erase}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Проверка и вывод последнего Hard\+Fault-\/трейса из Flash.
|
||||
|
||||
Функция ищет последнюю запись Hard\+Fault по базовому тегу HF\+\_\+\+RTT\+\_\+\+TAG\+\_\+\+BASE и выводит её содержимое в консоль. После успешного вывода Flash можно опционально очистить.
|
||||
|
||||
\begin{DoxyReturn}{Returns}
|
||||
int
|
||||
\begin{DoxyItemize}
|
||||
\item 1 — данные Hard\+Fault найдены и выведены
|
||||
\item 0 — данные отсутствуют или тег не найден
|
||||
\end{DoxyItemize}
|
||||
\end{DoxyReturn}
|
||||
\begin{DoxyNote}{Note}
|
||||
Вызов рекомендуется при инициализации приложения для анализа предыдущего сбоя.
|
||||
\end{DoxyNote}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trace_8h_source_l00466}{466}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_gadd8e10e7ec3b0204f7f92062ecd452f7}\index{Hardfault trace defines@{Hardfault trace defines}!HF\_HandleFault@{HF\_HandleFault}}
|
||||
\index{HF\_HandleFault@{HF\_HandleFault}!Hardfault trace defines@{Hardfault trace defines}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{HF\_HandleFault()}{HF\_HandleFault()}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_gadd8e10e7ec3b0204f7f92062ecd452f7}
|
||||
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE void HF\+\_\+\+Handle\+Fault (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Обработчик Hard\+Fault.
|
||||
|
||||
Вызывается из прерывания Hard\+Fault или в любом месте где понятно что ошибка критическая. Последовательно выполняет\+:
|
||||
\begin{DoxyEnumerate}
|
||||
\item Определяет активный стек (MSP или PSP) на момент сбоя.
|
||||
\item Сохраняет значения регистров R0-\/\+R3, R12, LR, PC, PSR.
|
||||
\item Выводит системные регистры CFSR, HFSR, DFSR, AFSR, MMFAR, BFAR.
|
||||
\item Формирует stack trace с 3 уровнями возврата.
|
||||
\item Копирует последние символы RTT буфера.
|
||||
\item Сохраняет все данные во Flash через RTT\+\_\+\+Save\+To\+Flash с базовым тегом HF\+\_\+\+RTT\+\_\+\+TAG\+\_\+\+BASE.
|
||||
\end{DoxyEnumerate}
|
||||
|
||||
\begin{DoxyNote}{Note}
|
||||
Функция защищена, так как вызывается в контексте сбоя — минимизирует использование вызовов HAL.
|
||||
\end{DoxyNote}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trace_8h_source_l00507}{507}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
|
||||
|
||||
135
Doc/latex/group___t_r_a_c_e___r_t_t___f_l_a_s_h.tex
Normal file
135
Doc/latex/group___t_r_a_c_e___r_t_t___f_l_a_s_h.tex
Normal file
@@ -0,0 +1,135 @@
|
||||
\doxysubsubsubsection{Flash RTT Buffer }
|
||||
\hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h}{}\label{group___t_r_a_c_e___r_t_t___f_l_a_s_h}\index{Flash RTT Buffer@{Flash RTT Buffer}}
|
||||
|
||||
|
||||
Макросы и функции для сохранения/чтения RTT буфера в Flash.
|
||||
|
||||
|
||||
\doxysubsubsubsubsubsection*{Classes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
struct \mbox{\hyperlink{struct_r_t_t___flash_header__t}{RTT\+\_\+\+Flash\+Header\+\_\+t}}
|
||||
\begin{DoxyCompactList}\small\item\em Структура RTT, которая будет положена в Flash. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsubsubsubsection*{Functions}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE void \mbox{\hyperlink{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga21353cb4f5af666237739e62ce019cd6}{RTT\+\_\+\+Flash\+Prepare}} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Подготовка Flash к записи \end{DoxyCompactList}\item
|
||||
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int \mbox{\hyperlink{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga79f222c8ab644de4d47f07528d1edd63}{RTT\+\_\+\+Save\+To\+Flash}} (uint32\+\_\+t tag, uint32\+\_\+t tail\+\_\+size)
|
||||
\begin{DoxyCompactList}\small\item\em Сохраняет последние символы RTT-\/буфера в Flash по тегу \end{DoxyCompactList}\item
|
||||
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int \mbox{\hyperlink{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga734b2ebbf0c77699b739013878cfd146}{RTT\+\_\+\+Read\+From\+Flash}} (uint32\+\_\+t tag, char \texorpdfstring{$\ast$}{*}Buffer, uint32\+\_\+t tail\+\_\+size, uint32\+\_\+t \texorpdfstring{$\ast$}{*}read\+\_\+size)
|
||||
\begin{DoxyCompactList}\small\item\em Читает последние символы RTT-\/буфера из Flash по тегу \end{DoxyCompactList}\item
|
||||
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int \mbox{\hyperlink{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga8d8c6850e32b42871faefce3352012d1}{RTT\+\_\+\+Erase\+Flash}} (void)
|
||||
\begin{DoxyCompactList}\small\item\em Стирание сектора Flash с RTT-\/буфером \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsubsection{Detailed Description}
|
||||
Макросы и функции для сохранения/чтения RTT буфера в Flash.
|
||||
|
||||
Модуль позволяет сохранять данные RTT буфера во Flash и читать их обратно по тегам. ~\newline
|
||||
Теги работают следующим образом\+: ~\newline
|
||||
|
||||
\begin{DoxyItemize}
|
||||
\item Базовый тег (младший байт = 0)\+: модуль сам выбирает первый свободный слот во Flash; ~\newline
|
||||
новые записи получают автоинкрементированный младший байт тега (от 0x00 до 0x\+FF). ~\newline
|
||||
|
||||
\item Конкретный тег (младший байт != 0)\+: запись или чтение происходит строго с указанным тегом; ~\newline
|
||||
если слот с таким тегом уже занят, запись не выполняется. ~\newline
|
||||
|
||||
\item Автоинкремент позволяет хранить несколько последовательных записей в пределах одного базового тега, ~\newline
|
||||
без необходимости вручную отслеживать адреса Flash или позиции буферов.
|
||||
\end{DoxyItemize}
|
||||
|
||||
\label{doc-func-members}
|
||||
\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_doc-func-members}
|
||||
\doxysubsubsubsubsection{Function Documentation}
|
||||
\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga21353cb4f5af666237739e62ce019cd6}\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_FlashPrepare@{RTT\_FlashPrepare}}
|
||||
\index{RTT\_FlashPrepare@{RTT\_FlashPrepare}!Flash RTT Buffer@{Flash RTT Buffer}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{RTT\_FlashPrepare()}{RTT\_FlashPrepare()}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga21353cb4f5af666237739e62ce019cd6}
|
||||
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE void RTT\+\_\+\+Flash\+Prepare (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Подготовка Flash к записи
|
||||
|
||||
Сбрасывает ошибки Flash и ожидает готовности перед записью
|
||||
|
||||
Definition at line \mbox{\hyperlink{trace_8h_source_l00181}{181}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga79f222c8ab644de4d47f07528d1edd63}\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_SaveToFlash@{RTT\_SaveToFlash}}
|
||||
\index{RTT\_SaveToFlash@{RTT\_SaveToFlash}!Flash RTT Buffer@{Flash RTT Buffer}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{RTT\_SaveToFlash()}{RTT\_SaveToFlash()}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga79f222c8ab644de4d47f07528d1edd63}
|
||||
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int RTT\+\_\+\+Save\+To\+Flash (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{tag}{, }\item[{uint32\+\_\+t}]{tail\+\_\+size}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Сохраняет последние символы RTT-\/буфера в Flash по тегу
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em tag} & Базовый или конкретный идентификатор буфера. \\
|
||||
\hline
|
||||
{\em tail\+\_\+size} & Количество последних символов RTT для копирования \\
|
||||
\hline
|
||||
{\em buf\+\_\+num} & Указатель на переменную в которую запишется номер буфера для конкретного тега \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
\texorpdfstring{$>$}{>}=0 — номер буфера (тег) для записи, \texorpdfstring{$<$}{<}0 — ошибка (нет места, тег уже занят, ошибка записи в флеш)
|
||||
\end{DoxyReturn}
|
||||
Автоматически копирует последние tail\+\_\+size символов из RTT-\/буфера и записывает их во Flash. Тег может быть базовым или конкретным\+:
|
||||
\begin{DoxyItemize}
|
||||
\item Если базовый (младший байт == 0) — будет выбран первый свободный слот с автоинкрементом. Автоинкремент формируется в пределах от 0x1 до 0x\+FF
|
||||
\item Если конкретный (младший байт != 0) — запись выполняется только с этим тегом, иначе ошибка.
|
||||
\end{DoxyItemize}
|
||||
|
||||
Definition at line \mbox{\hyperlink{trace_8h_source_l00204}{204}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga734b2ebbf0c77699b739013878cfd146}\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_ReadFromFlash@{RTT\_ReadFromFlash}}
|
||||
\index{RTT\_ReadFromFlash@{RTT\_ReadFromFlash}!Flash RTT Buffer@{Flash RTT Buffer}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{RTT\_ReadFromFlash()}{RTT\_ReadFromFlash()}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga734b2ebbf0c77699b739013878cfd146}
|
||||
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int RTT\+\_\+\+Read\+From\+Flash (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{tag}{, }\item[{char \texorpdfstring{$\ast$}{*}}]{Buffer}{, }\item[{uint32\+\_\+t}]{tail\+\_\+size}{, }\item[{uint32\+\_\+t \texorpdfstring{$\ast$}{*}}]{read\+\_\+size}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Читает последние символы RTT-\/буфера из Flash по тегу
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em tag} & Базовый или конкретный идентификатор буфера. \\
|
||||
\hline
|
||||
{\em Buffer} & Буфер назначения для копирования данных \\
|
||||
\hline
|
||||
{\em tail\+\_\+size} & Количество последних символов, которые нужно прочитать \\
|
||||
\hline
|
||||
{\em read\+\_\+size} & Количество считанных символов \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
\texorpdfstring{$>$}{>}=0 — номер буфера (тег) для записи, \texorpdfstring{$<$}{<}0 — ошибка (тег не найден или структура повреждена)
|
||||
\end{DoxyReturn}
|
||||
Копирует последние tail\+\_\+size символов из найденной записи Flash в Buffer. Тег может быть базовым или конкретным\+:
|
||||
\begin{DoxyItemize}
|
||||
\item Если базовый (младший байт == 0) — будет прочитана последняя запись из группы.
|
||||
\item Если конкретный (младший байт != 0) — прочитывается именно эта запись.
|
||||
\end{DoxyItemize}
|
||||
|
||||
Definition at line \mbox{\hyperlink{trace_8h_source_l00301}{301}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga8d8c6850e32b42871faefce3352012d1}\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_EraseFlash@{RTT\_EraseFlash}}
|
||||
\index{RTT\_EraseFlash@{RTT\_EraseFlash}!Flash RTT Buffer@{Flash RTT Buffer}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{RTT\_EraseFlash()}{RTT\_EraseFlash()}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga8d8c6850e32b42871faefce3352012d1}
|
||||
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int RTT\+\_\+\+Erase\+Flash (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
|
||||
|
||||
|
||||
|
||||
Стирание сектора Flash с RTT-\/буфером
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trace_8h_source_l00365}{365}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
|
||||
|
||||
109
Doc/latex/group___t_r_a_c_e___s_e_r_i_a_l.tex
Normal file
109
Doc/latex/group___t_r_a_c_e___s_e_r_i_a_l.tex
Normal file
@@ -0,0 +1,109 @@
|
||||
\doxysubsubsubsection{Serial trace defines }
|
||||
\hypertarget{group___t_r_a_c_e___s_e_r_i_a_l}{}\label{group___t_r_a_c_e___s_e_r_i_a_l}\index{Serial trace defines@{Serial trace defines}}
|
||||
|
||||
|
||||
Дефайны для работы с serial трассировкой (SWO, RTT)
|
||||
|
||||
|
||||
\doxysubsubsubsubsubsection*{Macros}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\+\_\+printf}}(...)
|
||||
\begin{DoxyCompactList}\small\item\em Универсальный макрос для вывода трассировки \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}{log\+\_\+printf}}(TAG, fmt, ...)
|
||||
\begin{DoxyCompactList}\small\item\em Макрос логирования с поддержкой уровней LOG\+\_\+\+LEVEL. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsubsection{Detailed Description}
|
||||
Дефайны для работы с serial трассировкой (SWO, RTT)
|
||||
|
||||
Определяется дефайн \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\+\_\+printf()} и \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}{log\+\_\+printf()} для работы с serial трассировкой\+:
|
||||
\begin{DoxyItemize}
|
||||
\item для RTT это будет вызов функции SEGGER\+\_\+\+RTT\+\_\+printf(), с подключением библиотеки SEGGER\+\_\+\+RTT.\+h
|
||||
\item для SWO это будет просто printf()
|
||||
|
||||
Но библиотеку STDOUT надо подключить самостоятельно\+:
|
||||
|
||||
\begin{DoxyVerb} Manage Run-Time Environment -> Compiler -> I/O -> STDOUT
|
||||
\end{DoxyVerb}
|
||||
|
||||
|
||||
Для SWO также надо включить трассировку\+: ~\newline
|
||||
|
||||
|
||||
\begin{DoxyVerb} Options For Target -> Debug -> Debugger Settings
|
||||
\end{DoxyVerb}
|
||||
|
||||
|
||||
В вкладке Debug\+:
|
||||
\begin{DoxyItemize}
|
||||
\item Port = SW В вкладке Trace\+:
|
||||
\item Указать Core Clock
|
||||
\item Выставить Trace Port = SWO
|
||||
\item ITM -\/ выбрать нужный порт (для Keil нулевой порт) ~\newline
|
||||
|
||||
\end{DoxyItemize}
|
||||
\item Если трассировка \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_ga76936505ca200d2e61226b7ba68f27c6}{SERIAL\+\_\+\+TRACE\+\_\+\+ENABLE} отключена, то все дефайны определяются как \textquotesingle{}ничего\textquotesingle{} и на производительность кода не влияют
|
||||
\end{DoxyItemize}
|
||||
|
||||
Если трассировка отключена, все макросы пустые и не влияют на производительность
|
||||
|
||||
\label{doc-define-members}
|
||||
\Hypertarget{group___t_r_a_c_e___s_e_r_i_a_l_doc-define-members}
|
||||
\doxysubsubsubsubsection{Macro Definition Documentation}
|
||||
\Hypertarget{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}\index{Serial trace defines@{Serial trace defines}!my\_printf@{my\_printf}}
|
||||
\index{my\_printf@{my\_printf}!Serial trace defines@{Serial trace defines}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{my\_printf}{my\_printf}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}
|
||||
\#define my\+\_\+printf(\begin{DoxyParamCaption}\item[{}]{}...{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{SEGGER\_RTT\_printf(0,\ \_\_VA\_ARGS\_\_)}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Универсальный макрос для вывода трассировки
|
||||
|
||||
Варианты реализации\+:
|
||||
\begin{DoxyItemize}
|
||||
\item RTT\+\_\+\+TRACE\+\_\+\+ENABLE {\ttfamily SEGGER\+\_\+\+RTT\+\_\+printf(0, ...)}
|
||||
\item SWO\+\_\+\+TRACE\+\_\+\+ENABLE -\/ {\ttfamily printf(...)}
|
||||
\item NO\+\_\+\+TRACE -\/ пустой макрос
|
||||
\end{DoxyItemize}
|
||||
|
||||
Definition at line \mbox{\hyperlink{trace_8h_source_l00069}{69}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}\index{Serial trace defines@{Serial trace defines}!log\_printf@{log\_printf}}
|
||||
\index{log\_printf@{log\_printf}!Serial trace defines@{Serial trace defines}}
|
||||
\doxysubsubsubsubsubsection{\texorpdfstring{log\_printf}{log\_printf}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}
|
||||
\#define log\+\_\+printf(\begin{DoxyParamCaption}\item[{}]{TAG}{, }\item[{}]{fmt}{, }\item[{}]{}...{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}\(\backslash\)n[\%lu]\ [\%s]\ "{}}\ fmt,\ \(\backslash\)}
|
||||
\DoxyCodeLine{(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{long})uwTick,\ TAG,\ \#\#\_\_VA\_ARGS\_\_)}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Макрос логирования с поддержкой уровней LOG\+\_\+\+LEVEL.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em TAG} & Тэг лога \\
|
||||
\hline
|
||||
{\em fmt,...} & Форматируемая строка\\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
Варианты реализации\+:
|
||||
\begin{DoxyItemize}
|
||||
\item LOG\+\_\+\+LEVEL == 0 -\/ логирование отключено (макрос пустой)
|
||||
\item LOG\+\_\+\+LEVEL == 1 -\/ выводится время и TAG
|
||||
\item LOG\+\_\+\+LEVEL \texorpdfstring{$>$}{>}= 2 -\/ выводится время, TAG, имя файла и номер строки
|
||||
\end{DoxyItemize}
|
||||
|
||||
Definition at line \mbox{\hyperlink{trace_8h_source_l00094}{94}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
|
||||
|
||||
509
Doc/latex/group___t_r_a_c_k_e_r_s.tex
Normal file
509
Doc/latex/group___t_r_a_c_k_e_r_s.tex
Normal file
@@ -0,0 +1,509 @@
|
||||
\doxysubsubsection{Trackers defines }
|
||||
\hypertarget{group___t_r_a_c_k_e_r_s}{}\label{group___t_r_a_c_k_e_r_s}\index{Trackers defines@{Trackers defines}}
|
||||
|
||||
|
||||
Дефайны для работы с трекерами
|
||||
|
||||
|
||||
\doxysubsubsubsubsection*{Macros}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}{Tracker\+Type\+Def}}(num\+\_\+user\+\_\+vars)
|
||||
\begin{DoxyCompactList}\small\item\em Структура для счетчиков отладки \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}{num\+\_\+of\+\_\+usercnts}}(\+\_\+user\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Получить количетство пользовательских переменных \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Проверка существует ли указанная пользовательская переменная \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Условие для проверки существует ли указанная пользовательская переменная \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}{tern\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Тернарный оператор для проверки существует ли указанная пользовательская переменная \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}{Tracker\+Get\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Считать счетчик успешных событий \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}{Tracker\+Get\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Считать счетчик ошибок \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}{Tracker\+Get\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Считать счетчик предупреждений \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}{Tracker\+Get\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Считать пользовательскую переменную \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}{Tracker\+Cnt\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Инкрементирование счетчика успешных событий \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}{Tracker\+Cnt\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Инкрементирование счетчика ошибок \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}{Tracker\+Cnt\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Инкрементирование счетчика предупреждений \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}{Tracker\+Cnt\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Инкрементирование пользовательской переменной \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}{Tracker\+Write\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+, \+\_\+val\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Запись числа в пользовательскую переменную \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}{Tracker\+Clear\+\_\+\+All}}(\+\_\+cntstruct\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Очистка всей структуры \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}{Tracker\+Clear\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Очистка счетчика успешных событий \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}{Tracker\+Clear\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Очистка счетчика ошибок \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}{Tracker\+Clear\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Очистка счетчика предупреждений \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}{Tracker\+Clear\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Очистка пользовательской переменной \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}{Tracker\+Clear\+\_\+\+User\+All}}(\+\_\+cntstruct\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Очистка всех пользовательских переменных \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsection{Detailed Description}
|
||||
Дефайны для работы с трекерами
|
||||
|
||||
Есть дефайн для объявления структуры трекера\+: \doxylink{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}{Tracker\+Type\+Def(num\+\_\+user\+\_\+vars)}. Структура состоит из следующих элементов\+:
|
||||
\begin{DoxyItemize}
|
||||
\item cnt\+\_\+ok
|
||||
\item cnt\+\_\+err
|
||||
\item cnt\+\_\+warn
|
||||
\item user\mbox{[}num\+\_\+user\+\_\+vars\mbox{]} ~\newline
|
||||
Также есть ряд функций (дефайнов) для обращения к элементам этой структуры.
|
||||
\end{DoxyItemize}
|
||||
|
||||
Если трекеры \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}{TRACKERS\+\_\+\+ENABLE} отключены, то все дефайны определяются как ничего и на производительность кода не влияют ~\newline
|
||||
|
||||
|
||||
\begin{DoxyParagraph}{Пример\+:}
|
||||
|
||||
\end{DoxyParagraph}
|
||||
Определяем typedef трекера измерений \doxylink{struct_measure___tracker_type_def}{Measure\+\_\+\+Tracker\+Type\+Def}
|
||||
|
||||
\begin{DoxyVerb} typedef TrackerTypeDef(MEASURE_USER_VARS_NUMB) Measure_TrackerTypeDef;
|
||||
\end{DoxyVerb}
|
||||
|
||||
|
||||
И через \doxylink{struct_measure___tracker_type_def}{Measure\+\_\+\+Tracker\+Type\+Def} структура подключается в другие структуры
|
||||
|
||||
Для работы с структурой можно использовать функции\+:
|
||||
\begin{DoxyItemize}
|
||||
\item Для получения значения\+:
|
||||
\begin{DoxyItemize}
|
||||
\item \doxylink{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}{Tracker\+Get\+\_\+\+Ok()}
|
||||
\item \doxylink{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}{Tracker\+Get\+\_\+\+Err()}
|
||||
\item \doxylink{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}{Tracker\+Get\+\_\+\+Warn()}
|
||||
\item \doxylink{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}{Tracker\+Get\+\_\+\+User(n)}
|
||||
\end{DoxyItemize}
|
||||
\item Для записи значения\+:
|
||||
\begin{DoxyItemize}
|
||||
\item \doxylink{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}{Tracker\+Cnt\+\_\+\+Ok()}
|
||||
\item \doxylink{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}{Tracker\+Cnt\+\_\+\+Err()}
|
||||
\item \doxylink{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}{Tracker\+Cnt\+\_\+\+Warn()}
|
||||
\item \doxylink{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}{Tracker\+Cnt\+\_\+\+User()}
|
||||
\item \doxylink{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}{Tracker\+Write\+\_\+\+User(n)}
|
||||
\end{DoxyItemize}
|
||||
\item Для очищения значения\+:
|
||||
\begin{DoxyItemize}
|
||||
\item \doxylink{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}{Tracker\+Clear\+\_\+\+All()}
|
||||
\item \doxylink{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}{Tracker\+Clear\+\_\+\+Ok()}
|
||||
\item \doxylink{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}{Tracker\+Clear\+\_\+\+Err()}
|
||||
\item \doxylink{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}{Tracker\+Clear\+\_\+\+Warn()}
|
||||
\item \doxylink{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}{Tracker\+Clear\+\_\+\+User(n)}
|
||||
\item \doxylink{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}{Tracker\+Clear\+\_\+\+User\+All()}
|
||||
\end{DoxyItemize}
|
||||
\end{DoxyItemize}
|
||||
|
||||
\label{doc-define-members}
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_doc-define-members}
|
||||
\doxysubsubsubsection{Macro Definition Documentation}
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}\index{Trackers defines@{Trackers defines}!TrackerTypeDef@{TrackerTypeDef}}
|
||||
\index{TrackerTypeDef@{TrackerTypeDef}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerTypeDef}{TrackerTypeDef}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}
|
||||
\#define Tracker\+Type\+Def(\begin{DoxyParamCaption}\item[{}]{num\+\_\+user\+\_\+vars}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\ \ \textcolor{keyword}{struct\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\(\backslash\)}
|
||||
\DoxyCodeLine{\ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
|
||||
\DoxyCodeLine{\ \ \ \ uint32\_t\ cnt\_ok;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
|
||||
\DoxyCodeLine{\ \ \ \ uint32\_t\ cnt\_err;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
|
||||
\DoxyCodeLine{\ \ \ \ uint32\_t\ cnt\_warn;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
|
||||
\DoxyCodeLine{\ \ \ \ uint32\_t\ user[num\_user\_vars];\ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
|
||||
\DoxyCodeLine{\ \ \}}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Структура для счетчиков отладки
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em num\+\_\+user\+\_\+vars} & -\/ количество пользовательских переменных\\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
Содержит счетчик для успешных событый (cnt\+\_\+ok), счетчик для ошибок (cnt\+\_\+err), счетчик для предупреждений (cnt\+\_\+warn).
|
||||
|
||||
Также есть возможность объявить пользовательские переменные в количестве $<$num\+\_\+user\+\_\+vars$>$ штук.
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00068}{68}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}\index{Trackers defines@{Trackers defines}!num\_of\_usercnts@{num\_of\_usercnts}}
|
||||
\index{num\_of\_usercnts@{num\_of\_usercnts}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{num\_of\_usercnts}{num\_of\_usercnts}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}
|
||||
\#define num\+\_\+of\+\_\+usercnts(\begin{DoxyParamCaption}\item[{}]{\+\_\+user\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\textcolor{keyword}{sizeof}(\_user\_)\ /\ \textcolor{keyword}{sizeof}(uint32\_t))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Получить количетство пользовательских переменных
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00078}{78}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}\index{Trackers defines@{Trackers defines}!assert\_usertracker@{assert\_usertracker}}
|
||||
\index{assert\_usertracker@{assert\_usertracker}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{assert\_usertracker}{assert\_usertracker}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}
|
||||
\#define assert\+\_\+usertracker(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{((\_uservarnumb\_)\ <\ \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}{num\_of\_usercnts}}((\_cntstruct\_).user))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Проверка существует ли указанная пользовательская переменная
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00080}{80}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}\index{Trackers defines@{Trackers defines}!if\_assert\_usertracker@{if\_assert\_usertracker}}
|
||||
\index{if\_assert\_usertracker@{if\_assert\_usertracker}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{if\_assert\_usertracker}{if\_assert\_usertracker}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}
|
||||
\#define if\+\_\+assert\+\_\+usertracker(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\textcolor{keywordflow}{if}(\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Условие для проверки существует ли указанная пользовательская переменная
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00082}{82}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}\index{Trackers defines@{Trackers defines}!tern\_assert\_usertracker@{tern\_assert\_usertracker}}
|
||||
\index{tern\_assert\_usertracker@{tern\_assert\_usertracker}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{tern\_assert\_usertracker}{tern\_assert\_usertracker}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}
|
||||
\#define tern\+\_\+assert\+\_\+usertracker(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_))\ ?\ \_uservarnumb\_\ :\ 0}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Тернарный оператор для проверки существует ли указанная пользовательская переменная
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00084}{84}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}\index{Trackers defines@{Trackers defines}!TrackerGet\_Ok@{TrackerGet\_Ok}}
|
||||
\index{TrackerGet\_Ok@{TrackerGet\_Ok}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_Ok}{TrackerGet\_Ok}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}
|
||||
\#define Tracker\+Get\+\_\+\+Ok(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\_cntstruct\_).cnt\_ok}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Считать счетчик успешных событий
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00088}{88}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}\index{Trackers defines@{Trackers defines}!TrackerGet\_Err@{TrackerGet\_Err}}
|
||||
\index{TrackerGet\_Err@{TrackerGet\_Err}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_Err}{TrackerGet\_Err}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}
|
||||
\#define Tracker\+Get\+\_\+\+Err(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\_cntstruct\_).cnt\_err}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Считать счетчик ошибок
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00090}{90}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}\index{Trackers defines@{Trackers defines}!TrackerGet\_Warn@{TrackerGet\_Warn}}
|
||||
\index{TrackerGet\_Warn@{TrackerGet\_Warn}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_Warn}{TrackerGet\_Warn}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}
|
||||
\#define Tracker\+Get\+\_\+\+Warn(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\_cntstruct\_).cnt\_warn}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Считать счетчик предупреждений
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00092}{92}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}\index{Trackers defines@{Trackers defines}!TrackerGet\_User@{TrackerGet\_User}}
|
||||
\index{TrackerGet\_User@{TrackerGet\_User}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_User}{TrackerGet\_User}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}
|
||||
\#define Tracker\+Get\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\_cntstruct\_).user[\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}{tern\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)]}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Считать пользовательскую переменную
|
||||
|
||||
\begin{DoxyNote}{Note}
|
||||
Здесь нет проверки -\/ существует ли пользовательская переменная! Есть возможность выйти за границы структуры!!! Чтобы этого избежать можно использовать дефайн \#ref \doxylink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker()} \begin{DoxyVerb} if(assert_usertracker(struct, 0)) {
|
||||
TrackerGet_User(struct, 0)
|
||||
}
|
||||
\end{DoxyVerb}
|
||||
|
||||
\end{DoxyNote}
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00104}{104}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}\index{Trackers defines@{Trackers defines}!TrackerCnt\_Ok@{TrackerCnt\_Ok}}
|
||||
\index{TrackerCnt\_Ok@{TrackerCnt\_Ok}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_Ok}{TrackerCnt\_Ok}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}
|
||||
\#define Tracker\+Cnt\+\_\+\+Ok(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\_cntstruct\_).cnt\_ok++}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Инкрементирование счетчика успешных событий
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00109}{109}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}\index{Trackers defines@{Trackers defines}!TrackerCnt\_Err@{TrackerCnt\_Err}}
|
||||
\index{TrackerCnt\_Err@{TrackerCnt\_Err}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_Err}{TrackerCnt\_Err}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}
|
||||
\#define Tracker\+Cnt\+\_\+\+Err(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\_cntstruct\_).cnt\_err++}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Инкрементирование счетчика ошибок
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00111}{111}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}\index{Trackers defines@{Trackers defines}!TrackerCnt\_Warn@{TrackerCnt\_Warn}}
|
||||
\index{TrackerCnt\_Warn@{TrackerCnt\_Warn}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_Warn}{TrackerCnt\_Warn}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}
|
||||
\#define Tracker\+Cnt\+\_\+\+Warn(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\_cntstruct\_).cnt\_warn++}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Инкрементирование счетчика предупреждений
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00113}{113}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}\index{Trackers defines@{Trackers defines}!TrackerCnt\_User@{TrackerCnt\_User}}
|
||||
\index{TrackerCnt\_User@{TrackerCnt\_User}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_User}{TrackerCnt\_User}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}
|
||||
\#define Tracker\+Cnt\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)\ (\_cntstruct\_).user[\_uservarnumb\_]++;}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Инкрементирование пользовательской переменной
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00115}{115}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}\index{Trackers defines@{Trackers defines}!TrackerWrite\_User@{TrackerWrite\_User}}
|
||||
\index{TrackerWrite\_User@{TrackerWrite\_User}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerWrite\_User}{TrackerWrite\_User}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}
|
||||
\#define Tracker\+Write\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{, }\item[{}]{\+\_\+val\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)\ (\_cntstruct\_).user[\_uservarnumb\_]\ =\ (\_val\_)}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Запись числа в пользовательскую переменную
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00117}{117}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}\index{Trackers defines@{Trackers defines}!TrackerClear\_All@{TrackerClear\_All}}
|
||||
\index{TrackerClear\_All@{TrackerClear\_All}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_All}{TrackerClear\_All}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}
|
||||
\#define Tracker\+Clear\+\_\+\+All(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{memset(\&(\_cntstruct\_),\ 0,\ \textcolor{keyword}{sizeof}(\_cntstruct\_))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Очистка всей структуры
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00120}{120}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}\index{Trackers defines@{Trackers defines}!TrackerClear\_Ok@{TrackerClear\_Ok}}
|
||||
\index{TrackerClear\_Ok@{TrackerClear\_Ok}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_Ok}{TrackerClear\_Ok}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}
|
||||
\#define Tracker\+Clear\+\_\+\+Ok(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\_cntstruct\_).cnt\_ok\ =\ 0}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Очистка счетчика успешных событий
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00122}{122}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}\index{Trackers defines@{Trackers defines}!TrackerClear\_Err@{TrackerClear\_Err}}
|
||||
\index{TrackerClear\_Err@{TrackerClear\_Err}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_Err}{TrackerClear\_Err}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}
|
||||
\#define Tracker\+Clear\+\_\+\+Err(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\_cntstruct\_).cnt\_err\ =\ 0}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Очистка счетчика ошибок
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00124}{124}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}\index{Trackers defines@{Trackers defines}!TrackerClear\_Warn@{TrackerClear\_Warn}}
|
||||
\index{TrackerClear\_Warn@{TrackerClear\_Warn}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_Warn}{TrackerClear\_Warn}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}
|
||||
\#define Tracker\+Clear\+\_\+\+Warn(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\_cntstruct\_).cnt\_warn\ =\ 0}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Очистка счетчика предупреждений
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00126}{126}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}\index{Trackers defines@{Trackers defines}!TrackerClear\_User@{TrackerClear\_User}}
|
||||
\index{TrackerClear\_User@{TrackerClear\_User}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_User}{TrackerClear\_User}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}
|
||||
\#define Tracker\+Clear\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)\ (\_cntstruct\_).user[\_uservarnumb\_]\ =\ 0;}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Очистка пользовательской переменной
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00128}{128}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
\Hypertarget{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}\index{Trackers defines@{Trackers defines}!TrackerClear\_UserAll@{TrackerClear\_UserAll}}
|
||||
\index{TrackerClear\_UserAll@{TrackerClear\_UserAll}!Trackers defines@{Trackers defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_UserAll}{TrackerClear\_UserAll}}
|
||||
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}
|
||||
\#define Tracker\+Clear\+\_\+\+User\+All(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{memset(\&(\_cntstruct\_).user,\ 0,\ \textcolor{keyword}{sizeof}((\_cntstruct\_).user))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Очистка всех пользовательских переменных
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{trackers_8h_source_l00130}{130}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
|
||||
|
||||
135
Doc/latex/group___u_t_i_l_s___d_e_f_i_n_e_s.tex
Normal file
135
Doc/latex/group___u_t_i_l_s___d_e_f_i_n_e_s.tex
Normal file
@@ -0,0 +1,135 @@
|
||||
\doxysubsubsection{Utils defines }
|
||||
\hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s}{}\label{group___u_t_i_l_s___d_e_f_i_n_e_s}\index{Utils defines@{Utils defines}}
|
||||
|
||||
|
||||
Общие вспомогательные макросы
|
||||
|
||||
|
||||
\doxysubsubsubsubsection*{Macros}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}{Clear\+Struct}}(\+\_\+struct\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Обнуление структуры. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}{Divide\+\_\+\+Up}}(\+\_\+val\+\_\+, \+\_\+div\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Деление с округлением вверх \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}{Byte\+Swap16}}(v)
|
||||
\begin{DoxyCompactList}\small\item\em Swap between Little Endian and Big Endian. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}{ABS}}(x)
|
||||
\begin{DoxyCompactList}\small\item\em Абсолютное значение числа \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsubsubsection{Detailed Description}
|
||||
Общие вспомогательные макросы
|
||||
|
||||
|
||||
|
||||
\label{doc-define-members}
|
||||
\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_doc-define-members}
|
||||
\doxysubsubsubsection{Macro Definition Documentation}
|
||||
\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}\index{Utils defines@{Utils defines}!ClearStruct@{ClearStruct}}
|
||||
\index{ClearStruct@{ClearStruct}!Utils defines@{Utils defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{ClearStruct}{ClearStruct}}
|
||||
{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}
|
||||
\#define Clear\+Struct(\begin{DoxyParamCaption}\item[{}]{\+\_\+struct\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{memset(\&(\_struct\_),\ 0,\ \textcolor{keyword}{sizeof}(\_struct\_))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Обнуление структуры.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em \+\_\+struct\+\_\+} & Структура, которую нужно обнулить.\\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
Макрос использует memset для обнуления всей памяти структуры. Используется для быстрой и безопасной инициализации переменных структур до нуля.
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00150}{150}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
|
||||
|
||||
\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}\index{Utils defines@{Utils defines}!Divide\_Up@{Divide\_Up}}
|
||||
\index{Divide\_Up@{Divide\_Up}!Utils defines@{Utils defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{Divide\_Up}{Divide\_Up}}
|
||||
{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}
|
||||
\#define Divide\+\_\+\+Up(\begin{DoxyParamCaption}\item[{}]{\+\_\+val\+\_\+}{, }\item[{}]{\+\_\+div\+\_\+}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{((\_val\_\ -\/\ 1)\ /\ \_div\_)\ +\ 1\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ через\ мат\ выражение\ */}}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Деление с округлением вверх
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em \+\_\+val\+\_\+} & Делимое. \\
|
||||
\hline
|
||||
{\em \+\_\+div\+\_\+} & Делитель. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
Результат деления, округленный вверх.
|
||||
\end{DoxyReturn}
|
||||
Если результат деления без остатка\+: он возвращается как есть Если с остатком -\/ округляется вверх
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00161}{161}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
|
||||
|
||||
\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}\index{Utils defines@{Utils defines}!ByteSwap16@{ByteSwap16}}
|
||||
\index{ByteSwap16@{ByteSwap16}!Utils defines@{Utils defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{ByteSwap16}{ByteSwap16}}
|
||||
{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}
|
||||
\#define Byte\+Swap16(\begin{DoxyParamCaption}\item[{}]{v}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(((v\&0xFF00)\ >>\ (8))\ |\ ((v\&0x00FF)\ <<\ (8)))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Swap between Little Endian and Big Endian.
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em v} & Исходное 16-\/битное значение. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
Результат с поменяными местами старшим и младшим байтом.
|
||||
\end{DoxyReturn}
|
||||
Переключения между двумя типами хранения слова\+: HI-\/\+LO байты и LO-\/\+HI байты.
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00169}{169}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
|
||||
|
||||
\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}\index{Utils defines@{Utils defines}!ABS@{ABS}}
|
||||
\index{ABS@{ABS}!Utils defines@{Utils defines}}
|
||||
\doxysubsubsubsubsection{\texorpdfstring{ABS}{ABS}}
|
||||
{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}
|
||||
\#define ABS(\begin{DoxyParamCaption}\item[{}]{x}{}\end{DoxyParamCaption})}
|
||||
|
||||
{\bfseries Value\+:}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{(\ ((x)\ >\ 0)?\ (x)\ :\ -\/(x))}
|
||||
|
||||
\end{DoxyCode}
|
||||
|
||||
|
||||
Абсолютное значение числа
|
||||
|
||||
|
||||
\begin{DoxyParams}{Parameters}
|
||||
{\em x} & Число. \\
|
||||
\hline
|
||||
\end{DoxyParams}
|
||||
\begin{DoxyReturn}{Returns}
|
||||
Абсолютное значение числа x.
|
||||
\end{DoxyReturn}
|
||||
Берет число по модулю. Хз как работает библиотечный abs в stdlib.\+h, мб это быстрее, но вряд ли конечно.
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00177}{177}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
|
||||
|
||||
459
Doc/latex/longtable_doxygen.sty
Normal file
459
Doc/latex/longtable_doxygen.sty
Normal file
@@ -0,0 +1,459 @@
|
||||
%%
|
||||
%% This is file `longtable.sty',
|
||||
%% generated with the docstrip utility.
|
||||
%%
|
||||
%% The original source files were:
|
||||
%%
|
||||
%% longtable.dtx (with options: `package')
|
||||
%%
|
||||
%% This is a generated file.
|
||||
%%
|
||||
%% The source is maintained by the LaTeX Project team and bug
|
||||
%% reports for it can be opened at http://latex-project.org/bugs.html
|
||||
%% (but please observe conditions on bug reports sent to that address!)
|
||||
%%
|
||||
%% Copyright 1993-2016
|
||||
%% The LaTeX3 Project and any individual authors listed elsewhere
|
||||
%% in this file.
|
||||
%%
|
||||
%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
|
||||
%% --------------------------------------------------------------------------
|
||||
%%
|
||||
%% It may be distributed and/or modified under the
|
||||
%% conditions of the LaTeX Project Public License, either version 1.3c
|
||||
%% of this license or (at your option) any later version.
|
||||
%% The latest version of this license is in
|
||||
%% http://www.latex-project.org/lppl.txt
|
||||
%% and version 1.3c or later is part of all distributions of LaTeX
|
||||
%% version 2005/12/01 or later.
|
||||
%%
|
||||
%% This file may only be distributed together with a copy of the LaTeX
|
||||
%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
|
||||
%% without such generated files.
|
||||
%%
|
||||
%% The list of all files belonging to the LaTeX `Tools Bundle' is
|
||||
%% given in the file `manifest.txt'.
|
||||
%%
|
||||
%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle
|
||||
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
|
||||
\ProvidesPackage{longtable_doxygen}
|
||||
[2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen]
|
||||
\def\LT@err{\PackageError{longtable}}
|
||||
\def\LT@warn{\PackageWarning{longtable}}
|
||||
\def\LT@final@warn{%
|
||||
\AtEndDocument{%
|
||||
\LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}%
|
||||
\global\let\LT@final@warn\relax}
|
||||
\DeclareOption{errorshow}{%
|
||||
\def\LT@warn{\PackageInfo{longtable}}}
|
||||
\DeclareOption{pausing}{%
|
||||
\def\LT@warn#1{%
|
||||
\LT@err{#1}{This is not really an error}}}
|
||||
\DeclareOption{set}{}
|
||||
\DeclareOption{final}{}
|
||||
\ProcessOptions
|
||||
\newskip\LTleft \LTleft=\fill
|
||||
\newskip\LTright \LTright=\fill
|
||||
\newskip\LTpre \LTpre=\bigskipamount
|
||||
\newskip\LTpost \LTpost=\bigskipamount
|
||||
\newcount\LTchunksize \LTchunksize=20
|
||||
\let\c@LTchunksize\LTchunksize
|
||||
\newdimen\LTcapwidth \LTcapwidth=4in
|
||||
\newbox\LT@head
|
||||
\newbox\LT@firsthead
|
||||
\newbox\LT@foot
|
||||
\newbox\LT@lastfoot
|
||||
\newcount\LT@cols
|
||||
\newcount\LT@rows
|
||||
\newcounter{LT@tables}
|
||||
\newcounter{LT@chunks}[LT@tables]
|
||||
\ifx\c@table\undefined
|
||||
\newcounter{table}
|
||||
\def\fnum@table{\tablename~\thetable}
|
||||
\fi
|
||||
\ifx\tablename\undefined
|
||||
\def\tablename{Table}
|
||||
\fi
|
||||
\newtoks\LT@p@ftn
|
||||
\mathchardef\LT@end@pen=30000
|
||||
\def\longtable{%
|
||||
\par
|
||||
\ifx\multicols\@undefined
|
||||
\else
|
||||
\ifnum\col@number>\@ne
|
||||
\@twocolumntrue
|
||||
\fi
|
||||
\fi
|
||||
\if@twocolumn
|
||||
\LT@err{longtable not in 1-column mode}\@ehc
|
||||
\fi
|
||||
\begingroup
|
||||
\@ifnextchar[\LT@array{\LT@array[x]}}
|
||||
\def\LT@array[#1]#2{%
|
||||
\refstepcounter{table}\stepcounter{LT@tables}%
|
||||
\if l#1%
|
||||
\LTleft\z@ \LTright\fill
|
||||
\else\if r#1%
|
||||
\LTleft\fill \LTright\z@
|
||||
\else\if c#1%
|
||||
\LTleft\fill \LTright\fill
|
||||
\fi\fi\fi
|
||||
\let\LT@mcol\multicolumn
|
||||
\let\LT@@tabarray\@tabarray
|
||||
\let\LT@@hl\hline
|
||||
\def\@tabarray{%
|
||||
\let\hline\LT@@hl
|
||||
\LT@@tabarray}%
|
||||
\let\\\LT@tabularcr\let\tabularnewline\\%
|
||||
\def\newpage{\noalign{\break}}%
|
||||
\def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
|
||||
\def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
|
||||
\let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption
|
||||
\@tempdima\ht\strutbox
|
||||
\let\@endpbox\LT@endpbox
|
||||
\ifx\extrarowheight\@undefined
|
||||
\let\@acol\@tabacol
|
||||
\let\@classz\@tabclassz \let\@classiv\@tabclassiv
|
||||
\def\@startpbox{\vtop\LT@startpbox}%
|
||||
\let\@@startpbox\@startpbox
|
||||
\let\@@endpbox\@endpbox
|
||||
\let\LT@LL@FM@cr\@tabularcr
|
||||
\else
|
||||
\advance\@tempdima\extrarowheight
|
||||
\col@sep\tabcolsep
|
||||
\let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr
|
||||
\fi
|
||||
\setbox\@arstrutbox\hbox{\vrule
|
||||
\@height \arraystretch \@tempdima
|
||||
\@depth \arraystretch \dp \strutbox
|
||||
\@width \z@}%
|
||||
\let\@sharp##\let\protect\relax
|
||||
\begingroup
|
||||
\@mkpream{#2}%
|
||||
\xdef\LT@bchunk{%
|
||||
\global\advance\c@LT@chunks\@ne
|
||||
\global\LT@rows\z@\setbox\z@\vbox\bgroup
|
||||
\LT@setprevdepth
|
||||
\tabskip\LTleft \noexpand\halign to\hsize\bgroup
|
||||
\tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}%
|
||||
\endgroup
|
||||
\expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
|
||||
\LT@make@row
|
||||
\m@th\let\par\@empty
|
||||
\everycr{}\lineskip\z@\baselineskip\z@
|
||||
\LT@bchunk}
|
||||
\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}}
|
||||
\def\LT@start{%
|
||||
\let\LT@start\endgraf
|
||||
\endgraf\penalty\z@\vskip\LTpre
|
||||
\dimen@\pagetotal
|
||||
\advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
|
||||
\advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
|
||||
\advance\dimen@ \ht\LT@foot
|
||||
\dimen@ii\vfuzz
|
||||
\vfuzz\maxdimen
|
||||
\setbox\tw@\copy\z@
|
||||
\setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
|
||||
\setbox\tw@\vbox{\unvbox\tw@}%
|
||||
\vfuzz\dimen@ii
|
||||
\advance\dimen@ \ht
|
||||
\ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
|
||||
\advance\dimen@\dp
|
||||
\ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
|
||||
\advance\dimen@ -\pagegoal
|
||||
\ifdim \dimen@>\z@\vfil\break\fi
|
||||
\global\@colroom\@colht
|
||||
\ifvoid\LT@foot\else
|
||||
\global\advance\vsize-\ht\LT@foot
|
||||
\global\advance\@colroom-\ht\LT@foot
|
||||
\dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
|
||||
\maxdepth\z@
|
||||
\fi
|
||||
\ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak
|
||||
\output{\LT@output}}
|
||||
\def\endlongtable{%
|
||||
\crcr
|
||||
\noalign{%
|
||||
\let\LT@entry\LT@entry@chop
|
||||
\xdef\LT@save@row{\LT@save@row}}%
|
||||
\LT@echunk
|
||||
\LT@start
|
||||
\unvbox\z@
|
||||
\LT@get@widths
|
||||
\if@filesw
|
||||
{\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
|
||||
\gdef\expandafter\noexpand
|
||||
\csname LT@\romannumeral\c@LT@tables\endcsname
|
||||
{\LT@save@row}}}%
|
||||
\fi
|
||||
\ifx\LT@save@row\LT@@save@row
|
||||
\else
|
||||
\LT@warn{Column \@width s have changed\MessageBreak
|
||||
in table \thetable}%
|
||||
\LT@final@warn
|
||||
\fi
|
||||
\endgraf\penalty -\LT@end@pen
|
||||
\ifvoid\LT@foot\else
|
||||
\global\advance\vsize\ht\LT@foot
|
||||
\global\advance\@colroom\ht\LT@foot
|
||||
\dimen@\pagegoal\advance\dimen@\ht\LT@foot\pagegoal\dimen@
|
||||
\fi
|
||||
\endgroup
|
||||
\global\@mparbottom\z@
|
||||
\endgraf\penalty\z@\addvspace\LTpost
|
||||
\ifvoid\footins\else\insert\footins{}\fi}
|
||||
\def\LT@nofcols#1&{%
|
||||
\futurelet\@let@token\LT@n@fcols}
|
||||
\def\LT@n@fcols{%
|
||||
\advance\LT@cols\@ne
|
||||
\ifx\@let@token\LT@nofcols
|
||||
\expandafter\@gobble
|
||||
\else
|
||||
\expandafter\LT@nofcols
|
||||
\fi}
|
||||
\def\LT@tabularcr{%
|
||||
\relax\iffalse{\fi\ifnum0=`}\fi
|
||||
\@ifstar
|
||||
{\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr
|
||||
\LT@t@bularcr}%
|
||||
{\LT@t@bularcr}}
|
||||
\let\LT@crcr\crcr
|
||||
\let\LT@setprevdepth\relax
|
||||
\def\LT@t@bularcr{%
|
||||
\global\advance\LT@rows\@ne
|
||||
\ifnum\LT@rows=\LTchunksize
|
||||
\gdef\LT@setprevdepth{%
|
||||
\prevdepth\z@\global
|
||||
\global\let\LT@setprevdepth\relax}%
|
||||
\expandafter\LT@xtabularcr
|
||||
\else
|
||||
\ifnum0=`{}\fi
|
||||
\expandafter\LT@LL@FM@cr
|
||||
\fi}
|
||||
\def\LT@xtabularcr{%
|
||||
\@ifnextchar[\LT@argtabularcr\LT@ntabularcr}
|
||||
\def\LT@ntabularcr{%
|
||||
\ifnum0=`{}\fi
|
||||
\LT@echunk
|
||||
\LT@start
|
||||
\unvbox\z@
|
||||
\LT@get@widths
|
||||
\LT@bchunk}
|
||||
\def\LT@argtabularcr[#1]{%
|
||||
\ifnum0=`{}\fi
|
||||
\ifdim #1>\z@
|
||||
\unskip\@xargarraycr{#1}%
|
||||
\else
|
||||
\@yargarraycr{#1}%
|
||||
\fi
|
||||
\LT@echunk
|
||||
\LT@start
|
||||
\unvbox\z@
|
||||
\LT@get@widths
|
||||
\LT@bchunk}
|
||||
\def\LT@echunk{%
|
||||
\crcr\LT@save@row\cr\egroup
|
||||
\global\setbox\@ne\lastbox
|
||||
\unskip
|
||||
\egroup}
|
||||
\def\LT@entry#1#2{%
|
||||
\ifhmode\@firstofone{&}\fi\omit
|
||||
\ifnum#1=\c@LT@chunks
|
||||
\else
|
||||
\kern#2\relax
|
||||
\fi}
|
||||
\def\LT@entry@chop#1#2{%
|
||||
\noexpand\LT@entry
|
||||
{\ifnum#1>\c@LT@chunks
|
||||
1}{0pt%
|
||||
\else
|
||||
#1}{#2%
|
||||
\fi}}
|
||||
\def\LT@entry@write{%
|
||||
\noexpand\LT@entry^^J%
|
||||
\@spaces}
|
||||
\def\LT@kill{%
|
||||
\LT@echunk
|
||||
\LT@get@widths
|
||||
\expandafter\LT@rebox\LT@bchunk}
|
||||
\def\LT@rebox#1\bgroup{%
|
||||
#1\bgroup
|
||||
\unvbox\z@
|
||||
\unskip
|
||||
\setbox\z@\lastbox}
|
||||
\def\LT@blank@row{%
|
||||
\xdef\LT@save@row{\expandafter\LT@build@blank
|
||||
\romannumeral\number\LT@cols 001 }}
|
||||
\def\LT@build@blank#1{%
|
||||
\if#1m%
|
||||
\noexpand\LT@entry{1}{0pt}%
|
||||
\expandafter\LT@build@blank
|
||||
\fi}
|
||||
\def\LT@make@row{%
|
||||
\global\expandafter\let\expandafter\LT@save@row
|
||||
\csname LT@\romannumeral\c@LT@tables\endcsname
|
||||
\ifx\LT@save@row\relax
|
||||
\LT@blank@row
|
||||
\else
|
||||
{\let\LT@entry\or
|
||||
\if!%
|
||||
\ifcase\expandafter\expandafter\expandafter\LT@cols
|
||||
\expandafter\@gobble\LT@save@row
|
||||
\or
|
||||
\else
|
||||
\relax
|
||||
\fi
|
||||
!%
|
||||
\else
|
||||
\aftergroup\LT@blank@row
|
||||
\fi}%
|
||||
\fi}
|
||||
\let\setlongtables\relax
|
||||
\def\LT@get@widths{%
|
||||
\setbox\tw@\hbox{%
|
||||
\unhbox\@ne
|
||||
\let\LT@old@row\LT@save@row
|
||||
\global\let\LT@save@row\@empty
|
||||
\count@\LT@cols
|
||||
\loop
|
||||
\unskip
|
||||
\setbox\tw@\lastbox
|
||||
\ifhbox\tw@
|
||||
\LT@def@row
|
||||
\advance\count@\m@ne
|
||||
\repeat}%
|
||||
\ifx\LT@@save@row\@undefined
|
||||
\let\LT@@save@row\LT@save@row
|
||||
\fi}
|
||||
\def\LT@def@row{%
|
||||
\let\LT@entry\or
|
||||
\edef\@tempa{%
|
||||
\ifcase\expandafter\count@\LT@old@row
|
||||
\else
|
||||
{1}{0pt}%
|
||||
\fi}%
|
||||
\let\LT@entry\relax
|
||||
\xdef\LT@save@row{%
|
||||
\LT@entry
|
||||
\expandafter\LT@max@sel\@tempa
|
||||
\LT@save@row}}
|
||||
\def\LT@max@sel#1#2{%
|
||||
{\ifdim#2=\wd\tw@
|
||||
#1%
|
||||
\else
|
||||
\number\c@LT@chunks
|
||||
\fi}%
|
||||
{\the\wd\tw@}}
|
||||
\def\LT@hline{%
|
||||
\noalign{\ifnum0=`}\fi
|
||||
\penalty\@M
|
||||
\futurelet\@let@token\LT@@hline}
|
||||
\def\LT@@hline{%
|
||||
\ifx\@let@token\hline
|
||||
\global\let\@gtempa\@gobble
|
||||
\gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}%
|
||||
\else
|
||||
\global\let\@gtempa\@empty
|
||||
\gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}%
|
||||
\fi
|
||||
\ifnum0=`{\fi}%
|
||||
\multispan\LT@cols
|
||||
\unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
|
||||
\noalign{\LT@sep}%
|
||||
\multispan\LT@cols
|
||||
\unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
|
||||
\noalign{\penalty\@M}%
|
||||
\@gtempa}
|
||||
\def\LT@caption{%
|
||||
\noalign\bgroup
|
||||
\@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n}
|
||||
\def\LT@c@ption#1[#2]#3{%
|
||||
\LT@makecaption#1\fnum@table{#3}%
|
||||
\def\@tempa{#2}%
|
||||
\ifx\@tempa\@empty\else
|
||||
{\let\\\space
|
||||
\addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}%
|
||||
\fi}
|
||||
\def\LT@capti@n{%
|
||||
\@ifstar
|
||||
{\egroup\LT@c@ption\@gobble[]}%
|
||||
{\egroup\@xdblarg{\LT@c@ption\@firstofone}}}
|
||||
\def\LT@makecaption#1#2#3{%
|
||||
\LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%
|
||||
\sbox\@tempboxa{#1{#2: }#3}%
|
||||
\ifdim\wd\@tempboxa>\hsize
|
||||
#1{#2: }#3%
|
||||
\else
|
||||
\hbox to\hsize{\hfil\box\@tempboxa\hfil}%
|
||||
\fi
|
||||
\endgraf\vskip\baselineskip}%
|
||||
\hss}}}
|
||||
\def\LT@output{%
|
||||
\ifnum\outputpenalty <-\@Mi
|
||||
\ifnum\outputpenalty > -\LT@end@pen
|
||||
\LT@err{floats and marginpars not allowed in a longtable}\@ehc
|
||||
\else
|
||||
\setbox\z@\vbox{\unvbox\@cclv}%
|
||||
\ifdim \ht\LT@lastfoot>\ht\LT@foot
|
||||
\dimen@\pagegoal
|
||||
\advance\dimen@\ht\LT@foot
|
||||
\advance\dimen@-\ht\LT@lastfoot
|
||||
\ifdim\dimen@<\ht\z@
|
||||
\setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}%
|
||||
\@makecol
|
||||
\@outputpage
|
||||
\global\vsize\@colroom
|
||||
\setbox\z@\vbox{\box\LT@head}%
|
||||
\fi
|
||||
\fi
|
||||
\unvbox\z@\ifvoid\LT@lastfoot\copy\LT@foot\else\box\LT@lastfoot\fi
|
||||
\fi
|
||||
\else
|
||||
\setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%
|
||||
\@makecol
|
||||
\@outputpage
|
||||
\global\vsize\@colroom
|
||||
\copy\LT@head\nobreak
|
||||
\fi}
|
||||
\def\LT@end@hd@ft#1{%
|
||||
\LT@echunk
|
||||
\ifx\LT@start\endgraf
|
||||
\LT@err
|
||||
{Longtable head or foot not at start of table}%
|
||||
{Increase LTchunksize}%
|
||||
\fi
|
||||
\setbox#1\box\z@
|
||||
\LT@get@widths
|
||||
\LT@bchunk}
|
||||
\def\endfirsthead{\LT@end@hd@ft\LT@firsthead}
|
||||
\def\endhead{\LT@end@hd@ft\LT@head}
|
||||
\def\endfoot{\LT@end@hd@ft\LT@foot}
|
||||
\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot}
|
||||
\def\LT@startpbox#1{%
|
||||
\bgroup
|
||||
\let\@footnotetext\LT@p@ftntext
|
||||
\setlength\hsize{#1}%
|
||||
\@arrayparboxrestore
|
||||
\vrule \@height \ht\@arstrutbox \@width \z@}
|
||||
\def\LT@endpbox{%
|
||||
\@finalstrut\@arstrutbox
|
||||
\egroup
|
||||
\the\LT@p@ftn
|
||||
\global\LT@p@ftn{}%
|
||||
\hfil}
|
||||
%% added \long to prevent:
|
||||
% LaTeX Warning: Command \LT@p@ftntext has changed.
|
||||
%
|
||||
% from the original repository (https://github.com/latex3/latex2e/blob/develop/required/tools/longtable.dtx):
|
||||
% \changes{v4.15}{2021/03/28}
|
||||
% {make long for gh/364}
|
||||
% Inside the `p' column, just save up the footnote text in a token
|
||||
% register.
|
||||
\long\def\LT@p@ftntext#1{%
|
||||
\edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}%
|
||||
\global\LT@p@ftn\expandafter{\@tempa{#1}}}%
|
||||
|
||||
\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen}
|
||||
\endinput
|
||||
%%
|
||||
%% End of file `longtable.sty'.
|
||||
67
Doc/latex/make.bat
Normal file
67
Doc/latex/make.bat
Normal file
@@ -0,0 +1,67 @@
|
||||
pushd %~dp0
|
||||
if not %errorlevel% == 0 goto :end1
|
||||
|
||||
set ORG_LATEX_CMD=%LATEX_CMD%
|
||||
set ORG_MKIDX_CMD=%MKIDX_CMD%
|
||||
set ORG_BIBTEX_CMD=%BIBTEX_CMD%
|
||||
set ORG_LATEX_COUNT=%LATEX_COUNT%
|
||||
set ORG_MANUAL_FILE=%MANUAL_FILE%
|
||||
if "X"%LATEX_CMD% == "X" set LATEX_CMD=pdflatex
|
||||
if "X"%MKIDX_CMD% == "X" set MKIDX_CMD=makeindex
|
||||
if "X"%BIBTEX_CMD% == "X" set BIBTEX_CMD=bibtex
|
||||
if "X"%LATEX_COUNT% == "X" set LATEX_COUNT=8
|
||||
if "X"%MANUAL_FILE% == "X" set MANUAL_FILE=refman
|
||||
|
||||
del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl %MANUAL_FILE%.pdf
|
||||
|
||||
|
||||
%LATEX_CMD% %MANUAL_FILE%
|
||||
@if ERRORLEVEL 1 goto :error
|
||||
echo ----
|
||||
%MKIDX_CMD% %MANUAL_FILE%.idx
|
||||
echo ----
|
||||
%LATEX_CMD% %MANUAL_FILE%
|
||||
@if ERRORLEVEL 1 goto :error
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
set count=%LATEX_COUNT%
|
||||
:repeat
|
||||
set content=X
|
||||
for /F "tokens=*" %%T in ( 'findstr /C:"Rerun LaTeX" %MANUAL_FILE%.log' ) do set content="%%~T"
|
||||
if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get cross-references right" %MANUAL_FILE%.log' ) do set content="%%~T"
|
||||
if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get bibliographical references right" %MANUAL_FILE%.log' ) do set content="%%~T"
|
||||
if !content! == X goto :skip
|
||||
set /a count-=1
|
||||
if !count! EQU 0 goto :skip
|
||||
|
||||
echo ----
|
||||
%LATEX_CMD% %MANUAL_FILE%
|
||||
@if ERRORLEVEL 1 goto :error
|
||||
goto :repeat
|
||||
:skip
|
||||
endlocal
|
||||
%MKIDX_CMD% %MANUAL_FILE%.idx
|
||||
%LATEX_CMD% %MANUAL_FILE%
|
||||
@if ERRORLEVEL 1 goto :error
|
||||
|
||||
goto :end
|
||||
:error
|
||||
@echo ===============
|
||||
@echo Please consult %MANUAL_FILE%.log to see the error messages
|
||||
@echo ===============
|
||||
|
||||
:end
|
||||
@REM reset environment
|
||||
popd
|
||||
set LATEX_CMD=%ORG_LATEX_CMD%
|
||||
set ORG_LATEX_CMD=
|
||||
set MKIDX_CMD=%ORG_MKIDX_CMD%
|
||||
set ORG_MKIDX_CMD=
|
||||
set BIBTEX_CMD=%ORG_BIBTEX_CMD%
|
||||
set ORG_BIBTEX_CMD=
|
||||
set MANUAL_FILE=%ORG_MANUAL_FILE%
|
||||
set ORG_MANUAL_FILE=
|
||||
set LATEX_COUNT=%ORG_LATEX_COUNT%
|
||||
set ORG_LATEX_COUNT=
|
||||
|
||||
:end1
|
||||
63
Doc/latex/mylibs__config_8h.tex
Normal file
63
Doc/latex/mylibs__config_8h.tex
Normal file
@@ -0,0 +1,63 @@
|
||||
\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/mylibs\+\_\+config.h File Reference}
|
||||
\hypertarget{mylibs__config_8h}{}\label{mylibs__config_8h}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_config.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_config.h}}
|
||||
|
||||
|
||||
Конфигурации для библиотек My\+Libs.
|
||||
|
||||
|
||||
{\ttfamily \#include "{}stm32f4xx\+\_\+hal.\+h"{}}\newline
|
||||
{\ttfamily \#include "{}mzkt\+\_\+config.\+h"{}}\newline
|
||||
{\ttfamily \#include "{}mzkt\+\_\+trace\+\_\+config.\+h"{}}\newline
|
||||
{\ttfamily \#include "{}interface\+\_\+config.\+h"{}}\newline
|
||||
\doxysubsubsection*{Macros}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}{TRACKERS\+\_\+\+ENABLE}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить трекеры \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga76936505ca200d2e61226b7ba68f27c6}{SERIAL\+\_\+\+TRACE\+\_\+\+ENABLE}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить serial трассировку \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga00ff2175bdc1fb11c8ec970ea3010dd8}{RTT\+\_\+\+TRACE\+\_\+\+ENABLE}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить serial трассировку через RTT. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gab8db9704b5d11858aa879689b9d36336}{SWO\+\_\+\+TRACE\+\_\+\+ENABLE}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить serial трассировку через SWO. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}{LOG\+\_\+\+LEVEL}}~1
|
||||
\begin{DoxyCompactList}\small\item\em Уровень log serial трассировки \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}{log\+\_\+printf}. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE}}~1024
|
||||
\begin{DoxyCompactList}\small\item\em Размер буфера RTT в Flash. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga3bc1b76864e1d32cbdd174d4caae7724}{RTT\+\_\+\+FLASH\+\_\+\+SECTOR}}~FLASH\+\_\+\+SECTOR\+\_\+11
|
||||
\begin{DoxyCompactList}\small\item\em Сектор FLASH куда положится RTT буфер \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga8e56f75d3ab8a89ddde1404ae23c3297}{RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+START}}~0x080\+E0000
|
||||
\begin{DoxyCompactList}\small\item\em Начало сектора RTT\+\_\+\+FLASH\+\_\+\+SECTOR. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gafeca0be3688dea07ff443f894668003d}{RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+END}}~0x080\+FFFFF
|
||||
\begin{DoxyCompactList}\small\item\em Конец сектора RTT\+\_\+\+FLASH\+\_\+\+SECTOR. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga47f454f804b4dbc26cae079e8d8641e6}{HARDFAULT\+\_\+\+SERIAL\+\_\+\+TRACE}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить обработку и serial трассировку Hardfault. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gadc960255719c7eff4bdfaa850be9b313}{HF\+\_\+\+RTT\+\_\+\+TAG\+\_\+\+BASE}}~0x\+DEAD0000
|
||||
\begin{DoxyCompactList}\small\item\em базовый тег для Hard\+Fault \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gafcc7ea03d4df8f1909e580b519a7f3ca}{HF\+\_\+\+RTT\+\_\+\+TAIL\+\_\+\+SIZE}}~\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE}}
|
||||
\begin{DoxyCompactList}\small\item\em Размер буфера RTT, который сохранится при Hardfault. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gaa31234688b333a505aaa57b8ecdedf5b}{HF\+\_\+\+STACK\+\_\+\+DUMP\+\_\+\+WORDS}}~32
|
||||
\begin{DoxyCompactList}\small\item\em Сколько слов стека будет проанализировано во время Hardfault. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga0c602733a4a359bf8c095d71cd4d0f63}{HF\+\_\+\+FLASH\+\_\+\+ADDR}}~((uint32\+\_\+t)0x080\+FF000)
|
||||
\begin{DoxyCompactList}\small\item\em Адрес FLASH куда положится RTT буфер \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga92d0d14732edb7dfa21d483304bdb051}{HF\+\_\+\+RAM\+\_\+\+END}}~0x20030000
|
||||
\begin{DoxyCompactList}\small\item\em Конец RAM памяти (чтобы во время анализа стека не выйти за пределы) \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}{GPIO\+\_\+\+TRACE\+\_\+\+ENABLE}}
|
||||
\begin{DoxyCompactList}\small\item\em Включить GPIO трассировку \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be}{INCLUDE\+\_\+\+BIT\+\_\+\+ACCESS\+\_\+\+LIB}}
|
||||
\begin{DoxyCompactList}\small\item\em Подключить библиотеку с typedef с битовыми полями \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32}{INCLUDE\+\_\+\+TRACKERS\+\_\+\+LIB}}
|
||||
\begin{DoxyCompactList}\small\item\em Подключить библиотеку с трекерами \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga0a3ca94b616997069dd53e2c6c2687d7}{INCLUDE\+\_\+\+TRACE\+\_\+\+LIB}}
|
||||
\begin{DoxyCompactList}\small\item\em Подключить библиотеку с трейсами \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga181a46326e46b60afb160190832c7281}{INCLUDE\+\_\+\+GENERAL\+\_\+\+PERIPH\+\_\+\+LIBS}}
|
||||
\begin{DoxyCompactList}\small\item\em Подключить библиотеку с периферией \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsection{Detailed Description}
|
||||
Конфигурации для библиотек My\+Libs.
|
||||
|
||||
|
||||
|
||||
Definition in file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}.
|
||||
|
||||
88
Doc/latex/mylibs__config_8h_source.tex
Normal file
88
Doc/latex/mylibs__config_8h_source.tex
Normal file
@@ -0,0 +1,88 @@
|
||||
\doxysection{mylibs\+\_\+config.\+h}
|
||||
\hypertarget{mylibs__config_8h_source}{}\label{mylibs__config_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_config.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_config.h}}
|
||||
\mbox{\hyperlink{mylibs__config_8h}{Go to the documentation of this file.}}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00001}00001\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00002}00002\ \textcolor{comment}{**************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ mylibs\_config.h}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Конфигурации\ для\ библиотек\ MyLibs}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00005}00005\ \textcolor{comment}{**************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00006}00006\ \textcolor{comment}{*\ @defgroup\ MYLIBS\_CONFIG\ \ \ Configs}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00007}00007\ \textcolor{comment}{*\ @ingroup\ \ MYLIBS\_ALL}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00008}00008\ \textcolor{comment}{*\ @brief\ \ \ \ Конфигурации\ для\ библиотек\ MyLibs}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00009}00009\ \textcolor{comment}{@\{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00010}00010\ \textcolor{comment}{*************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00011}00011\ \textcolor{preprocessor}{\#ifndef\ \_\_MYLIBS\_CONFIG\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00012}00012\ \textcolor{preprocessor}{\#define\ \_\_MYLIBS\_CONFIG\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00013}00013\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00014}00014\ \textcolor{preprocessor}{\#include\ "{}stm32f4xx\_hal.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00015}00015\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00016}00016\ \textcolor{comment}{//\ user\ includes}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00017}00017\ \textcolor{preprocessor}{\#include\ "{}mzkt\_config.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00018}00018\ \textcolor{preprocessor}{\#include\ "{}mzkt\_trace\_config.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00019}00019\ \textcolor{preprocessor}{\#include\ "{}interface\_config.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00020}00020\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00021}00021\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00022}00022\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00023}00023\ \textcolor{comment}{\ \ *\ @addtogroup\ TRACE\_CONFIG\ \ \ Trace\ configs}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00024}00024\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_CONFIG}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00025}00025\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Конфигурация\ трекеров\ и\ трассировки}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00026}00026\ \textcolor{comment}{\ \ *\ @\{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00027}00027\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00028}00028\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00029}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}{00029}}\ \textcolor{preprocessor}{\#define\ TRACKERS\_ENABLE\ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ трекеры}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00030}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga76936505ca200d2e61226b7ba68f27c6}{00030}}\ \textcolor{preprocessor}{\#define\ SERIAL\_TRACE\_ENABLE\ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ serial\ трассировку}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00031}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga00ff2175bdc1fb11c8ec970ea3010dd8}{00031}}\ \textcolor{preprocessor}{\#define\ RTT\_TRACE\_ENABLE\ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ serial\ трассировку\ через\ RTT}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00032}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gab8db9704b5d11858aa879689b9d36336}{00032}}\ \textcolor{preprocessor}{\#define\ SWO\_TRACE\_ENABLE\ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ serial\ трассировку\ через\ SWO}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00033}00033\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00034}00034\ \textcolor{comment}{\ \ *\ @brief\ Уровень\ log\ serial\ трассировки\ @ref\ log\_printf}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00035}00035\ \textcolor{comment}{\ \ *\ \ -\/\ LOG\_LEVEL\ ==\ 0\ -\/\ логирование\ отключено\ (макрос\ пустой)}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00036}00036\ \textcolor{comment}{\ \ *\ \ -\/\ LOG\_LEVEL\ ==\ 1\ -\/\ выводится\ время\ и\ TAG}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00037}00037\ \textcolor{comment}{\ \ *\ \ -\/\ LOG\_LEVEL\ >=\ 2\ -\/\ выводится\ время,\ TAG,\ имя\ файла\ и\ номер\ строки}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00038}00038\ \textcolor{comment}{\ \ */}\textcolor{preprocessor}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00039}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}{00039}}\ \textcolor{preprocessor}{\#define\ LOG\_LEVEL\ 1}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00040}00040\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00041}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{00041}}\ \textcolor{preprocessor}{\#define\ RTT\_FLASH\_BUFFER\_SIZE\ \ \ 1024\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Размер\ буфера\ RTT\ в\ Flash}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00042}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga3bc1b76864e1d32cbdd174d4caae7724}{00042}}\ \textcolor{preprocessor}{\#define\ RTT\_FLASH\_SECTOR\ \ \ \ \ \ \ \ FLASH\_SECTOR\_11\ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Сектор\ FLASH\ куда\ положится\ RTT\ буфер}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00043}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga8e56f75d3ab8a89ddde1404ae23c3297}{00043}}\ \textcolor{preprocessor}{\#define\ RTT\_FLASH\_SECTOR\_START\ \ 0x080E0000\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Начало\ сектора\ RTT\_FLASH\_SECTOR}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00044}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gafeca0be3688dea07ff443f894668003d}{00044}}\ \textcolor{preprocessor}{\#define\ RTT\_FLASH\_SECTOR\_END\ \ \ \ 0x080FFFFF\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Конец\ сектора\ RTT\_FLASH\_SECTOR}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00045}00045\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00046}00046\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00047}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga47f454f804b4dbc26cae079e8d8641e6}{00047}}\ \textcolor{preprocessor}{\#define\ HARDFAULT\_SERIAL\_TRACE\ \ }\textcolor{comment}{///<\ Включить\ обработку\ и\ serial\ трассировку\ Hardfault}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00048}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gadc960255719c7eff4bdfaa850be9b313}{00048}}\ \textcolor{preprocessor}{\#define\ HF\_RTT\_TAG\_BASE\ \ \ \ \ \ \ \ \ 0xDEAD0000\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ базовый\ тег\ для\ HardFault}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00049}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gafcc7ea03d4df8f1909e580b519a7f3ca}{00049}}\ \textcolor{preprocessor}{\#define\ HF\_RTT\_TAIL\_SIZE\ \ \ \ \ \ \ \ RTT\_FLASH\_BUFFER\_SIZE\ \ \ }\textcolor{comment}{///<\ Размер\ буфера\ RTT,\ который\ сохранится\ при\ Hardfault}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00050}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gaa31234688b333a505aaa57b8ecdedf5b}{00050}}\ \textcolor{preprocessor}{\#define\ HF\_STACK\_DUMP\_WORDS\ \ \ \ \ 32\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Сколько\ слов\ стека\ будет\ проанализировано\ во\ время\ Hardfault}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00051}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga0c602733a4a359bf8c095d71cd4d0f63}{00051}}\ \textcolor{preprocessor}{\#define\ HF\_FLASH\_ADDR\ \ \ \ \ \ \ \ \ \ \ ((uint32\_t)0x080FF000)\ \ }\textcolor{comment}{///<\ Адрес\ FLASH\ куда\ положится\ RTT\ буфер}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00052}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga92d0d14732edb7dfa21d483304bdb051}{00052}}\ \textcolor{preprocessor}{\#define\ HF\_RAM\_END\ \ \ \ \ \ \ \ \ \ \ \ \ \ 0x20030000\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Конец\ RAM\ памяти\ (чтобы\ во\ время\ анализа\ стека\ не\ выйти\ за\ пределы)}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00053}00053\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00054}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}{00054}}\ \textcolor{preprocessor}{\#define\ GPIO\_TRACE\_ENABLE\ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ GPIO\ трассировку}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00055}00055\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00056}00056\ \textcolor{comment}{/**\ TRACE\_CONFIG}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00057}00057\ \textcolor{comment}{\ \ *\ @\}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00058}00058\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00059}00059\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00060}00060\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00061}00061\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00062}00062\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00063}00063\ \textcolor{comment}{\ \ *\ @addtogroup\ LIBS\_CONFIG\ \ \ Libraries\ configs}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00064}00064\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_CONFIG}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00065}00065\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Включенные\ трекеры\ и\ трассировки\ в\ МЗКТЭ}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00066}00066\ \textcolor{comment}{\ \ *\ @\{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00067}00067\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00068}00068\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00069}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be}{00069}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_BIT\_ACCESS\_LIB\ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ typedef\ с\ битовыми\ полями}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00070}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32}{00070}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_TRACKERS\_LIB\ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ трекерами}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00071}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga0a3ca94b616997069dd53e2c6c2687d7}{00071}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_TRACE\_LIB\ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ трейсами}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00072}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga181a46326e46b60afb160190832c7281}{00072}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_GENERAL\_PERIPH\_LIBS\ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ периферией}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00073}00073\ \textcolor{comment}{//\#define\ FREERTOS\_DELAY\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ///<\ Использовать\ FreeRTOS\ задержку,\ вместо\ HAL}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00074}00074\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00075}00075\ \textcolor{comment}{/**\ LIBS\_CONFIG}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00076}00076\ \textcolor{comment}{\ \ *\ @\}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00077}00077\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00078}00078\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00079}00079\ \textcolor{comment}{/**\ MYLIBS\_CONFIG}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00080}00080\ \textcolor{comment}{\ \ *\ @\}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00081}00081\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00082}00082\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\_\_MYLIBS\_CONFIG\_H\_}}
|
||||
|
||||
\end{DoxyCode}
|
||||
53
Doc/latex/mylibs__defs_8h.tex
Normal file
53
Doc/latex/mylibs__defs_8h.tex
Normal file
@@ -0,0 +1,53 @@
|
||||
\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/mylibs\+\_\+defs.h File Reference}
|
||||
\hypertarget{mylibs__defs_8h}{}\label{mylibs__defs_8h}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_defs.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_defs.h}}
|
||||
|
||||
|
||||
Заголочный файл для дефайнов библиотеки My\+Libs\+General.
|
||||
|
||||
|
||||
{\ttfamily \#include "{}mylibs\+\_\+config.\+h"{}}\newline
|
||||
\doxysubsubsection*{Macros}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{My\+Libs\+\_\+\+Error\+\_\+\+Handler}}(params)
|
||||
\begin{DoxyCompactList}\small\item\em Error\+\_\+\+Handler который будет вызыватся в библиотеке \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga0b75f0bcf066acdf797b8e6730c52f86}{check\+\_\+null\+\_\+ptr\+\_\+1}}(\+\_\+p1\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Проверить указатель на NULL. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae7d1cbb9075ee4b830342fd564d96be0}{check\+\_\+null\+\_\+ptr\+\_\+2}}(\+\_\+p1\+\_\+, \+\_\+p2\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Проверить два указателя на NULL. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga002f4a5f5d8bb37d88f607386bc6ba2e}{check\+\_\+null\+\_\+ptr\+\_\+3}}(\+\_\+p1\+\_\+, \+\_\+p2\+\_\+, \+\_\+p3\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Проверить три указателя на NULL. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gade91c09d89a5f69003dcfe506ed0327f}{check\+\_\+null\+\_\+ptr\+\_\+4}}(\+\_\+p1\+\_\+, \+\_\+p2\+\_\+, \+\_\+p3\+\_\+, \+\_\+p4\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Проверить четыре указателя на NULL. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga944edcd2c65519578d36730b94701f64}{check\+\_\+null\+\_\+ptr\+\_\+5}}(\+\_\+p1\+\_\+, \+\_\+p2\+\_\+, \+\_\+p3\+\_\+, \+\_\+p4\+\_\+, \+\_\+p5\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Проверить пять указателей на NULL. \end{DoxyCompactList}\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}\item
|
||||
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}{Clear\+Struct}}(\+\_\+struct\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Обнуление структуры. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}{Divide\+\_\+\+Up}}(\+\_\+val\+\_\+, \+\_\+div\+\_\+)
|
||||
\begin{DoxyCompactList}\small\item\em Деление с округлением вверх \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}{Byte\+Swap16}}(v)
|
||||
\begin{DoxyCompactList}\small\item\em Swap between Little Endian and Big Endian. \end{DoxyCompactList}\item
|
||||
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}{ABS}}(x)
|
||||
\begin{DoxyCompactList}\small\item\em Абсолютное значение числа \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||
\doxysubsubsection*{Functions}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
void {\bfseries Error\+\_\+\+Handler} (void)
|
||||
\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsection{Detailed Description}
|
||||
Заголочный файл для дефайнов библиотеки My\+Libs\+General.
|
||||
|
||||
|
||||
|
||||
Definition in file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
|
||||
|
||||
189
Doc/latex/mylibs__defs_8h_source.tex
Normal file
189
Doc/latex/mylibs__defs_8h_source.tex
Normal file
@@ -0,0 +1,189 @@
|
||||
\doxysection{mylibs\+\_\+defs.\+h}
|
||||
\hypertarget{mylibs__defs_8h_source}{}\label{mylibs__defs_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_defs.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_defs.h}}
|
||||
\mbox{\hyperlink{mylibs__defs_8h}{Go to the documentation of this file.}}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00001}00001\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00002}00002\ \textcolor{comment}{**************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ mylibs\_defs.h}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Заголочный\ файл\ для\ дефайнов\ библиотеки\ MyLibsGeneral.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00005}00005\ \textcolor{comment}{**************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00006}00006\ \textcolor{comment}{*\ @defgroup\ MYLIBS\_DEFINES\ \ General\ Defines}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00007}00007\ \textcolor{comment}{*\ @ingroup\ \ MYLIBS\_ALL}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00008}00008\ \textcolor{comment}{*\ @brief\ \ \ \ Общие\ макросы\ и\ typedef'ы,\ используемые\ по\ всему\ проекту}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00009}00009\ \textcolor{comment}{*}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00010}00010\ \textcolor{comment}{*************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00011}00011\ \textcolor{preprocessor}{\#ifndef\ \_\_MYLIBS\_DEFINES\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00012}00012\ \textcolor{preprocessor}{\#define\ \_\_MYLIBS\_DEFINES\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00013}00013\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00014}00014\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__config_8h}{mylibs\_config.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00015}00015\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00016}00016\ \textcolor{comment}{/***************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00017}00017\ \textcolor{comment}{******************************ERROR\_HANDLER********************************/}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00018}00018\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00019}00019\ \textcolor{comment}{\ \ *\ @addtogroup\ ERROR\_HANDLER\_DEFINES\ \ \ Error\ Handler\ defines}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00020}00020\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_DEFINES}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00021}00021\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Дефайны\ для\ обработки\ ошибок}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00022}00022\ \textcolor{comment}{\ \ *\ @\{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00023}00023\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00024}00024\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00025}00025\ \textcolor{comment}{/*\ extern\ Error\_Handler\ from\ main.h\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00026}00026\ \textcolor{keyword}{extern}\ \textcolor{keywordtype}{void}\ Error\_Handler(\textcolor{keywordtype}{void});}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00027}00027\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00028}00028\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00029}00029\ \textcolor{comment}{\ \ *\ @brief\ Error\_Handler\ который\ будет\ вызыватся\ в\ библиотеке}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00030}00030\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00031}\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{00031}}\ \textcolor{preprocessor}{\#define\ MyLibs\_Error\_Handler(params)\ \ Error\_Handler(params)}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00032}00032\ \textcolor{comment}{/*\ If\ error\ handler\ not\ defined\ -\/\ set\ void\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00033}00033\ \textcolor{preprocessor}{\#ifndef\ MyLibs\_Error\_Handler}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00034}00034\ \textcolor{preprocessor}{\#define\ MyLibs\_Error\_Handler(...)}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00035}00035\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ MyLibs\_Error\_Handler}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00036}00036\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00037}00037\ \textcolor{comment}{/**\ @brief\ Проверить\ указатель\ на\ NULL\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00038}\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga0b75f0bcf066acdf797b8e6730c52f86}{00038}}\ \textcolor{preprocessor}{\#define\ check\_null\_ptr\_1(\_p1\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\_p1\_\ ==\ NULL)}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00039}00039\ \textcolor{comment}{/**\ @brief\ Проверить\ два\ указателя\ на\ NULL\ */}\textcolor{preprocessor}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00040}\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae7d1cbb9075ee4b830342fd564d96be0}{00040}}\ \textcolor{preprocessor}{\#define\ check\_null\_ptr\_2(\_p1\_,\ \_p2\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ((\_p1\_\ ==\ NULL)\ ||\ (\_p2\_\ ==\ NULL))}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00041}00041\ \textcolor{comment}{/**\ @brief\ Проверить\ три\ указателя\ на\ NULL\ */}\textcolor{preprocessor}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00042}\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga002f4a5f5d8bb37d88f607386bc6ba2e}{00042}}\ \textcolor{preprocessor}{\#define\ check\_null\_ptr\_3(\_p1\_,\ \_p2\_,\ \_p3\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ ((\_p1\_\ ==\ NULL)\ ||\ (\_p2\_\ ==\ NULL)\ ||\ (\_p3\_\ ==\ NULL))}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00043}00043\ \textcolor{comment}{/**\ @brief\ Проверить\ четыре\ указателя\ на\ NULL\ */}\textcolor{preprocessor}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00044}\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gade91c09d89a5f69003dcfe506ed0327f}{00044}}\ \textcolor{preprocessor}{\#define\ check\_null\_ptr\_4(\_p1\_,\ \_p2\_,\ \_p3\_,\ \_p4\_)\ \ \ \ \ \ \ \ ((\_p1\_\ ==\ NULL)\ ||\ (\_p2\_\ ==\ NULL)\ ||\ (\_p3\_\ ==\ NULL)\ ||\ (\_p4\_\ ==\ NULL))}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00045}00045\ \textcolor{comment}{/**\ @brief\ Проверить\ пять\ указателей\ на\ NULL\ */}\textcolor{preprocessor}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00046}\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga944edcd2c65519578d36730b94701f64}{00046}}\ \textcolor{preprocessor}{\#define\ check\_null\_ptr\_5(\_p1\_,\ \_p2\_,\ \_p3\_,\ \_p4\_,\ \_p5\_)\ \ ((\_p1\_\ ==\ NULL)\ ||\ (\_p2\_\ ==\ NULL)\ ||\ (\_p3\_\ ==\ NULL)\ ||\ (\_p4\_\ ==\ NULL)\ ||\ (\_p5\_\ ==\ NULL))}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00047}00047\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00048}00048\ \textcolor{comment}{/**\ ERROR\_HANDLER\_DEFINES}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00049}00049\ \textcolor{comment}{\ \ *\ @\}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00050}00050\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00051}00051\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00052}00052\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00053}00053\ \textcolor{comment}{/***************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00054}00054\ \textcolor{comment}{********************************ACCESS\_DEFINES*****************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00055}00055\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00056}00056\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00057}00057\ \textcolor{comment}{/***************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00058}00058\ \textcolor{comment}{******************************DELAYS\_DEFINES*******************************/}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00059}00059\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00060}00060\ \textcolor{comment}{\ \ *\ @addtogroup\ DELAYS\_DEFINES\ \ \ \ Delays\ defines}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00061}00061\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_DEFINES}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00062}00062\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ \ Макросы\ и\ определения\ для\ работы\ с\ задержками\ в\ миллисекундах.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00063}00063\ \textcolor{comment}{\ \ *\ @details}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00064}00064\ \textcolor{comment}{\ \ *\ Этот\ блок\ содержит\ макросы\ для\ реализации\ задержек\ с\ использованием\ HAL\ или\ FreeRTOS:}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00065}00065\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelay\ \ \ \ \ \ \ \ \ \ \ \ \ —\ простая\ задержка\ заданной\ длительности;}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00066}00066\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelayStart\ \ \ \ \ \ \ \ —\ сохранение\ текущего\ времени\ начала\ задержки;}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00067}00067\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelayWhileActive\ \ —\ проверка,\ активна\ ли\ задержка;}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00068}00068\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelayWaitDone\ \ \ \ \ —\ проверка,\ завершена\ ли\ задержка.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00069}00069\ \textcolor{comment}{\ \ *\ Эти\ макросы\ удобны\ для\ реализации\ неблокирующих\ задержек.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00070}00070\ \textcolor{comment}{\ \ *\ @\{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00071}00071\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00072}00072\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00073}00073\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00074}00074\ \textcolor{comment}{\ \ *\ @def\ msDelay(\_ms\_)}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00075}00075\ \textcolor{comment}{\ \ *\ @brief\ Задержка\ на\ указанное\ количество\ миллисекунд.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00076}00076\ \textcolor{comment}{\ \ *\ @param\ \_ms\_\ Время\ задержки\ в\ миллисекундах.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00077}00077\ \textcolor{comment}{\ \ *\ @note\ Использует\ HAL\_Delay\ или\ osDelay\ в\ зависимости\ от\ @ref\ FREERTOS\_DELAY.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00078}00078\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00079}00079\ \textcolor{preprocessor}{\#ifdef\ FREERTOS\_DELAY}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00080}00080\ \textcolor{preprocessor}{\ \ \#define\ msDelay(\_ms\_)\ \ \ \ \ \ \ osDelay(\_ms\_)}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00081}00081\ \textcolor{preprocessor}{\#else}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00082}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}{00082}}\ \textcolor{preprocessor}{\ \ \#define\ msDelay(\_ms\_)\ \ \ \ \ \ \ HAL\_Delay(\_ms\_)}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00083}00083\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00084}00084\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00085}00085\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00086}00086\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00087}00087\ \textcolor{comment}{\ \ *\ @brief\ Начать\ отсчет\ задержки.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00088}00088\ \textcolor{comment}{\ \ *\ @param\ \_pvar\_\ Указатель\ на\ переменную\ типа\ uint32\_t\ для\ хранения\ времени\ старта.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00089}00089\ \textcolor{comment}{\ \ *\ @details\ После\ вызова\ этого\ макроса\ переменная\ \_pvar\_\ содержит\ текущее\ количество\ миллисекунд}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00090}00090\ \textcolor{comment}{\ \ *\ с\ момента\ запуска\ системы\ (HAL\_GetTick).\ }}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00091}00091\ \textcolor{comment}{\ \ *\ }}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00092}00092\ \textcolor{comment}{\ \ *\ Используется\ для\ реализации\ неблокирующих\ задержек.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00093}00093\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00094}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}{00094}}\ \textcolor{preprocessor}{\#define\ msDelayStart(\_pvar\_)\ \ \ \ \ \ \ \ \ \ \ \ *(\_pvar\_)\ =\ HAL\_GetTick()}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00095}00095\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00096}00096\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00097}00097\ \textcolor{comment}{\ *\ @brief\ Проверяет,\ активна\ ли\ задержка.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00098}00098\ \textcolor{comment}{\ *\ @param\ \_ms\_\ Длительность\ задержки\ в\ миллисекундах.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00099}00099\ \textcolor{comment}{\ *\ @param\ \_pvar\_\ Указатель\ на\ переменную,\ в\ которой\ сохранено\ время\ начала\ (@ref\ msDelayStart).}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00100}00100\ \textcolor{comment}{\ *\ @retval\ 1\ Задержка\ еще\ активна.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00101}00101\ \textcolor{comment}{\ *\ @retval\ 0\ Задержка\ завершена.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00102}00102\ \textcolor{comment}{\ *\ @details}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00103}00103\ \textcolor{comment}{\ *\ Возвращает\ true,\ пока\ время\ задержки\ не\ истекло.\ Используется\ в\ проверках,}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00104}00104\ \textcolor{comment}{\ *\ когда\ нужно\ **действовать,\ пока\ задержка\ выполняется**.\ Пример:}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00105}00105\ \textcolor{comment}{\ *\ @code}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00106}00106\ \textcolor{comment}{\ *\ while(msDelayWhileActive(1000,\ \&tick))\ \{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00107}00107\ \textcolor{comment}{\ *\ \ \ \ \ //\ выполняем\ другие\ задачи,\ задержка\ не\ блокирует\ поток}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00108}00108\ \textcolor{comment}{\ *\ \}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00109}00109\ \textcolor{comment}{\ *\ @endcode}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00110}00110\ \textcolor{comment}{\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00111}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}{00111}}\ \textcolor{preprocessor}{\#define\ msDelayWhileActive(\_ms\_,\ \_pvar\_)\ \ \ \ (HAL\_GetTick()\ -\/\ *(\_pvar\_)\ <\ \_ms\_)}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00112}00112\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00113}00113\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00114}00114\ \textcolor{comment}{\ *\ @brief\ Проверяет,\ завершилась\ ли\ задержка.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00115}00115\ \textcolor{comment}{\ *\ @param\ \_ms\_\ Длительность\ задержки\ в\ миллисекундах.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00116}00116\ \textcolor{comment}{\ *\ @param\ \_pvar\_\ Указатель\ на\ переменную,\ в\ которой\ сохранено\ время\ начала\ (msDelayStart).}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00117}00117\ \textcolor{comment}{\ *\ @retval\ 1\ Задержка\ завершена.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00118}00118\ \textcolor{comment}{\ *\ @retval\ 0\ Задержка\ еще\ активна.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00119}00119\ \textcolor{comment}{\ *\ @details}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00120}00120\ \textcolor{comment}{\ *\ Возвращает\ true,\ когда\ задержка\ уже\ завершена.\ Используется\ в\ проверках,}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00121}00121\ \textcolor{comment}{\ *\ когда\ нужно\ **выполнить\ действие\ только\ после\ окончания\ задержки**.\ Пример:}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00122}00122\ \textcolor{comment}{\ *\ @code}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00123}00123\ \textcolor{comment}{\ *\ if(msDelayWaitDone(1000,\ \&tick))\ \{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00124}00124\ \textcolor{comment}{\ *\ \ \ \ \ //\ выполняем\ действие\ после\ завершения\ задержки}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00125}00125\ \textcolor{comment}{\ *\ \}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00126}00126\ \textcolor{comment}{\ *\ @endcode}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00127}00127\ \textcolor{comment}{\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00128}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{00128}}\ \textcolor{preprocessor}{\#define\ msDelayWaitDone(\_ms\_,\ \_pvar\_)\ \ \ \ (HAL\_GetTick()\ -\/\ *(\_pvar\_)\ >=\ \_ms\_)}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00129}00129\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00130}00130\ \textcolor{comment}{/**\ DELAYS\_DEFINES}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00131}00131\ \textcolor{comment}{\ \ *\ @\}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00132}00132\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00133}00133\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00134}00134\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00135}00135\ \textcolor{comment}{/***************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00136}00136\ \textcolor{comment}{*******************************MATH\_DEFINES********************************/}\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00137}00137\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00138}00138\ \textcolor{comment}{\ \ *\ @addtogroup\ UTILS\_DEFINES\ \ \ \ \ \ Utils\ defines}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00139}00139\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_DEFINES}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00140}00140\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Общие\ вспомогательные\ макросы}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00141}00141\ \textcolor{comment}{\ \ *\ @\{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00142}00142\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00143}00143\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00144}00144\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00145}00145\ \textcolor{comment}{\ *\ @brief\ Обнуление\ структуры.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00146}00146\ \textcolor{comment}{\ *\ @param\ \_struct\_\ Структура,\ которую\ нужно\ обнулить.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00147}00147\ \textcolor{comment}{\ *\ @details\ Макрос\ использует\ memset\ для\ обнуления\ всей\ памяти\ структуры.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00148}00148\ \textcolor{comment}{\ *\ Используется\ для\ быстрой\ и\ безопасной\ инициализации\ переменных\ структур\ до\ нуля.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00149}00149\ \textcolor{comment}{\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00150}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}{00150}}\ \textcolor{preprocessor}{\#define\ ClearStruct(\_struct\_)\ \ \ \ \ memset(\&(\_struct\_),\ 0,\ sizeof(\_struct\_))}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00151}00151\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00152}00152\ \textcolor{comment}{/**}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00153}00153\ \textcolor{comment}{\ \ *\ @brief\ \ Деление\ с\ округлением\ вверх}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00154}00154\ \textcolor{comment}{\ \ *\ @param\ \_val\_\ Делимое.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00155}00155\ \textcolor{comment}{\ \ *\ @param\ \_div\_\ Делитель.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00156}00156\ \textcolor{comment}{\ \ *\ @return\ Результат\ деления,\ округленный\ вверх.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00157}00157\ \textcolor{comment}{\ \ *\ @details\ \ Если\ результат\ деления\ без\ остатка:\ он\ возвращается\ как\ есть}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00158}00158\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ Если\ с\ остатком\ -\/\ округляется\ вверх}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00159}00159\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00160}00160\ \textcolor{comment}{//\#define\ Divide\_Up(\_val\_,\ \_div\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (((\_val\_)\%(\_div\_))?\ (\_val\_)/(\_div\_)+1\ :\ (\_val\_)/\_div\_)\ \ /*\ через\ тернарный\ оператор\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00161}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}{00161}}\ \textcolor{preprocessor}{\#define\ Divide\_Up(\_val\_,\ \_div\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ((\_val\_\ -\/\ 1)\ /\ \_div\_)\ +\ 1\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{/*\ через\ мат\ выражение\ */}\textcolor{preprocessor}{\ }}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00162}00162\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00163}00163\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00164}00164\ \textcolor{comment}{\ \ *\ @brief\ \ Swap\ between\ Little\ Endian\ and\ Big\ Endian}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00165}00165\ \textcolor{comment}{\ \ *\ @param\ v\ Исходное\ 16-\/битное\ значение.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00166}00166\ \textcolor{comment}{\ \ *\ @return\ Результат\ с\ поменяными\ местами\ старшим\ и\ младшим\ байтом.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00167}00167\ \textcolor{comment}{\ \ *\ @details\ \ Переключения\ между\ двумя\ типами\ хранения\ слова:\ HI-\/LO\ байты\ и\ LO-\/HI\ байты.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00168}00168\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00169}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}{00169}}\ \textcolor{preprocessor}{\#define\ ByteSwap16(v)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (((v\&0xFF00)\ >>\ (8))\ |\ ((v\&0x00FF)\ <<\ (8)))}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00170}00170\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00171}00171\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00172}00172\ \textcolor{comment}{\ \ *\ @brief\ \ Абсолютное\ значение\ числа}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00173}00173\ \textcolor{comment}{\ \ *\ @param\ x\ Число.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00174}00174\ \textcolor{comment}{\ \ *\ @return\ Абсолютное\ значение\ числа\ x.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00175}00175\ \textcolor{comment}{\ \ *\ @details\ \ Берет\ число\ по\ модулю.\ Хз\ как\ работает\ библиотечный\ abs\ в\ stdlib.h,\ мб\ это\ быстрее,\ но\ вряд\ ли\ конечно.}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00176}00176\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00177}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}{00177}}\ \textcolor{preprocessor}{\#define\ ABS(x)\ (\ ((x)\ >\ 0)?\ (x)\ :\ -\/(x))}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00178}00178\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00179}00179\ \textcolor{comment}{/**\ UTILS\_DEFINES}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00180}00180\ \textcolor{comment}{\ \ *\ @\}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00181}00181\ \textcolor{comment}{\ \ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00182}00182\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00183}00183\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\_\_MYLIBS\_DEFINES\_H\_}}
|
||||
|
||||
\end{DoxyCode}
|
||||
54
Doc/latex/mylibs__include_8h.tex
Normal file
54
Doc/latex/mylibs__include_8h.tex
Normal file
@@ -0,0 +1,54 @@
|
||||
\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/mylibs\+\_\+include.h File Reference}
|
||||
\hypertarget{mylibs__include_8h}{}\label{mylibs__include_8h}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_include.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_include.h}}
|
||||
|
||||
|
||||
Заголочный файл для всех библиотек
|
||||
|
||||
|
||||
{\ttfamily \#include "{}mylibs\+\_\+defs.\+h"{}}\newline
|
||||
{\ttfamily \#include "{}bit\+\_\+access.\+h"{}}\newline
|
||||
{\ttfamily \#include "{}trackers.\+h"{}}\newline
|
||||
{\ttfamily \#include "{}trace.\+h"{}}\newline
|
||||
{\ttfamily \#include "{}general\+\_\+flash.\+h"{}}\newline
|
||||
{\ttfamily \#include "{}general\+\_\+gpio.\+h"{}}\newline
|
||||
{\ttfamily \#include "{}stdlib.\+h"{}}\newline
|
||||
{\ttfamily \#include "{}string.\+h"{}}\newline
|
||||
{\ttfamily \#include "{}stdio.\+h"{}}\newline
|
||||
{\ttfamily \#include "{}math.\+h"{}}\newline
|
||||
{\ttfamily \#include "{}main.\+h"{}}\newline
|
||||
{\ttfamily \#include "{}modbus\+\_\+data.\+h"{}}\newline
|
||||
\doxysubsubsection*{Classes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
struct \mbox{\hyperlink{struct_measure_handle___tracker_type_def}{Measure\+Handle\+\_\+\+Tracker\+Type\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Struct for trackers for Measure. \end{DoxyCompactList}\item
|
||||
struct \mbox{\hyperlink{struct_measure___tracker_type_def}{Measure\+\_\+\+Tracker\+Type\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Struct for trackers for Measure. \end{DoxyCompactList}\item
|
||||
struct \mbox{\hyperlink{struct_r_s___tracker_type_def}{RS\+\_\+\+Tracker\+Type\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Struct for trackers for RS. \end{DoxyCompactList}\item
|
||||
struct \mbox{\hyperlink{struct_a_d_c___tracker_type_def}{ADC\+\_\+\+Tracker\+Type\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Struct for trackers for ADC. \end{DoxyCompactList}\item
|
||||
struct \mbox{\hyperlink{struct_a_d_c_channel___tracker_type_def}{ADCChannel\+\_\+\+Tracker\+Type\+Def}}
|
||||
\begin{DoxyCompactList}\small\item\em Struct for trackers for ADC Channel. \end{DoxyCompactList}\item
|
||||
struct \mbox{\hyperlink{struct_m_z_k_t___l_e_ds_type_def}{MZKT\+\_\+\+LEDs\+Type\+Def}}
|
||||
\item
|
||||
struct \mbox{\hyperlink{struct_m_z_k_t___discrete_inputs_type_def}{MZKT\+\_\+\+Discrete\+Inputs\+Type\+Def}}
|
||||
\end{DoxyCompactItemize}
|
||||
\doxysubsubsection*{Variables}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
\Hypertarget{mylibs__include_8h_a44df41881b74d044d697d9a52a168440}\label{mylibs__include_8h_a44df41881b74d044d697d9a52a168440}
|
||||
\mbox{\hyperlink{struct_m_z_k_t___l_e_ds_type_def}{MZKT\+\_\+\+LEDs\+Type\+Def}} {\bfseries MZKT\+\_\+\+LEDS}
|
||||
\item
|
||||
\Hypertarget{mylibs__include_8h_a7572d18e2cd9131cf37897838e57ce14}\label{mylibs__include_8h_a7572d18e2cd9131cf37897838e57ce14}
|
||||
\mbox{\hyperlink{struct_m_z_k_t___discrete_inputs_type_def}{MZKT\+\_\+\+Discrete\+Inputs\+Type\+Def}} {\bfseries MZKT\+\_\+\+DISCIN}
|
||||
\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsection{Detailed Description}
|
||||
Заголочный файл для всех библиотек
|
||||
|
||||
Здесь нужно собрать библиотеки и дефайны, которые должны быть видны во всем проекте, чтобы не подключать 100 инклюдов в каждом "{}.\+c"{} файле
|
||||
|
||||
Definition in file \mbox{\hyperlink{mylibs__include_8h_source}{mylibs\+\_\+include.\+h}}.
|
||||
|
||||
119
Doc/latex/mylibs__include_8h_source.tex
Normal file
119
Doc/latex/mylibs__include_8h_source.tex
Normal file
@@ -0,0 +1,119 @@
|
||||
\doxysection{mylibs\+\_\+include.\+h}
|
||||
\hypertarget{mylibs__include_8h_source}{}\label{mylibs__include_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_include.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_include.h}}
|
||||
\mbox{\hyperlink{mylibs__include_8h}{Go to the documentation of this file.}}
|
||||
\begin{DoxyCode}{0}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00001}00001\ \textcolor{comment}{/**\ }}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00002}00002\ \textcolor{comment}{**************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ mylibs\_include.h}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Заголочный\ файл\ для\ всех\ библиотек}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00005}00005\ \textcolor{comment}{**************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00006}00006\ \textcolor{comment}{@details}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00007}00007\ \textcolor{comment}{Здесь\ нужно\ собрать\ библиотеки\ и\ дефайны,\ которые\ должны\ быть\ видны\ во\ всем\ проекте,}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00008}00008\ \textcolor{comment}{чтобы\ не\ подключать\ 100\ инклюдов\ в\ каждом\ "{}.c"{}\ файле}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00009}00009\ \textcolor{comment}{**************************************************************************}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00010}00010\ \textcolor{comment}{*\ @defgroup\ MYLIBS\_ALL\ \ \ \ \ \ My\ Libs}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00011}00011\ \textcolor{comment}{*\ @brief\ \ \ \ Все\ используемые\ MyLibs\ библиотеки}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00012}00012\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00013}00013\ \textcolor{comment}{*\ @defgroup\ MYLIBS\_PERIPHERAL\ Peripheral}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00014}00014\ \textcolor{comment}{*\ @ingroup\ \ MYLIBS\_ALL}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00015}00015\ \textcolor{comment}{*\ @brief\ \ \ \ Модули\ для\ управления\ периферией}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00016}00016\ \textcolor{comment}{*}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00017}00017\ \textcolor{comment}{*************************************************************************/}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00018}00018\ \textcolor{preprocessor}{\#ifndef\ \_\_MYLIBS\_INCLUDE\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00019}00019\ \textcolor{preprocessor}{\#define\ \_\_MYLIBS\_INCLUDE\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00020}00020\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00021}00021\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00022}00022\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00023}00023\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00024}00024\ \textcolor{preprocessor}{\#ifdef\ ARM\_MATH\_CM4}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00025}00025\ \textcolor{preprocessor}{\ \ \#include\ "{}arm\_math.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00026}00026\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00027}00027\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00028}00028\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00029}00029\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_BIT\_ACCESS\_LIB}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00030}00030\ \textcolor{preprocessor}{\#include\ "{}bit\_access.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00031}00031\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00032}00032\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00033}00033\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_TRACKERS\_LIB}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00034}00034\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{trackers_8h}{trackers.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00035}00035\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00036}00036\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00037}00037\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_TRACE\_LIB}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00038}00038\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{trace_8h}{trace.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00039}00039\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00040}00040\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00041}00041\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00042}00042\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00043}00043\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_GENERAL\_PERIPH\_LIBS}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00044}00044\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00045}00045\ \textcolor{preprocessor}{\#include\ "{}general\_flash.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00046}00046\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{general__gpio_8h}{general\_gpio.h}}"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00047}00047\ \textcolor{preprocessor}{\#ifdef\ HAL\_SPI\_MODULE\_ENABLED}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00048}00048\ \textcolor{preprocessor}{\#include\ "{}general\_spi.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00049}00049\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00050}00050\ \textcolor{preprocessor}{\#ifdef\ HAL\_UART\_MODULE\_ENABLED}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00051}00051\ \textcolor{preprocessor}{\#include\ "{}general\_uart.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00052}00052\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00053}00053\ \textcolor{preprocessor}{\#ifdef\ HAL\_TIM\_MODULE\_ENABLED}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00054}00054\ \textcolor{preprocessor}{\#include\ "{}general\_tim.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00055}00055\ \textcolor{preprocessor}{\#endif}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00056}00056\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00057}00057\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//INCLUDE\_GENERAL\_PERIPH\_LIBS}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00058}00058\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00059}00059\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00060}00060\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00061}00061\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00062}00062\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00063}00063\ \textcolor{comment}{//\ user\ includes}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00064}00064\ \textcolor{preprocessor}{\#include\ "{}stdlib.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00065}00065\ \textcolor{preprocessor}{\#include\ "{}string.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00066}00066\ \textcolor{preprocessor}{\#include\ "{}stdio.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00067}00067\ \textcolor{preprocessor}{\#include\ "{}math.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00068}00068\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00069}00069\ \textcolor{preprocessor}{\#include\ "{}main.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00070}00070\ \textcolor{preprocessor}{\#include\ "{}modbus\_data.h"{}}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00071}00071\ \textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00072}00072\ \textcolor{comment}{/**\ @brief\ Struct\ for\ trackers\ for\ Measure\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00073}\mbox{\hyperlink{struct_measure_handle___tracker_type_def}{00073}}\ \textcolor{keyword}{typedef}\ \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}{TrackerTypeDef}}(MEASURE\_HANDLE\_USER\_VARS\_NUMB)\ \mbox{\hyperlink{struct_measure_handle___tracker_type_def}{MeasureHandle\_TrackerTypeDef}};\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00074}00074\ \textcolor{comment}{/**\ @brief\ Struct\ for\ trackers\ for\ Measure\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00075}\mbox{\hyperlink{struct_measure___tracker_type_def}{00075}}\ \textcolor{keyword}{typedef}\ \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}{TrackerTypeDef}}(MEASURE\_USER\_VARS\_NUMB)\ \mbox{\hyperlink{struct_measure___tracker_type_def}{Measure\_TrackerTypeDef}};\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00076}00076\ \textcolor{comment}{/**\ @brief\ Struct\ for\ trackers\ for\ RS\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00077}\mbox{\hyperlink{struct_r_s___tracker_type_def}{00077}}\ \textcolor{keyword}{typedef}\ \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}{TrackerTypeDef}}(RS\_USER\_VARS\_NUMB)\ \ \ \ \ \ \mbox{\hyperlink{struct_r_s___tracker_type_def}{RS\_TrackerTypeDef}};\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00078}00078\ \textcolor{comment}{/**\ @brief\ Struct\ for\ trackers\ for\ ADC\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00079}\mbox{\hyperlink{struct_a_d_c___tracker_type_def}{00079}}\ \textcolor{keyword}{typedef}\ \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}{TrackerTypeDef}}(ADC\_USER\_VARS\_NUMB)\ \ \ \ \ \mbox{\hyperlink{struct_a_d_c___tracker_type_def}{ADC\_TrackerTypeDef}};\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00080}00080\ \textcolor{comment}{/**\ @brief\ Struct\ for\ trackers\ for\ ADC\ Channel\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00081}\mbox{\hyperlink{struct_a_d_c_channel___tracker_type_def}{00081}}\ \textcolor{keyword}{typedef}\ \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}{TrackerTypeDef}}(ADC\_CH\_USER\_VARS\_NUMB)\ \ \mbox{\hyperlink{struct_a_d_c_channel___tracker_type_def}{ADCChannel\_TrackerTypeDef}};}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00082}00082\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00083}00083\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00084}\mbox{\hyperlink{struct_m_z_k_t___l_e_ds_type_def}{00084}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00085}00085\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00086}00086\ \ \ \textcolor{comment}{/*\ Светодиоды,\ которые\ повторяют\ дискретные\ выходные\ сигналы\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00087}00087\ \ \ \mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ work;}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00088}00088\ \ \ \mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ warning;}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00089}00089\ \ \ \mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ error;}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00090}00090\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00091}00091\ \ \ \textcolor{comment}{/*\ Светодиод\ для\ индикации\ активной\ связи\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00092}00092\ \ \ \mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ connection;}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00093}00093\ \ \ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00094}00094\ \ \ \textcolor{comment}{/*\ Отладочные\ светодиоды\ */}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00095}00095\ \ \ \mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ green1;}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00096}00096\ \ \ \mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ green2;}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00097}00097\ \ \ \mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ red;}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00098}00098\ \}\mbox{\hyperlink{struct_m_z_k_t___l_e_ds_type_def}{MZKT\_LEDsTypeDef}};}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00099}00099\ \textcolor{keyword}{extern}\ \mbox{\hyperlink{struct_m_z_k_t___l_e_ds_type_def}{MZKT\_LEDsTypeDef}}\ MZKT\_LEDS;}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00100}00100\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00101}\mbox{\hyperlink{struct_m_z_k_t___discrete_inputs_type_def}{00101}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00102}00102\ \{}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00103}00103\ \ \ \mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\_SwitchTypeDef}}\ err\_24V;}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00104}00104\ \ \ \mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\_SwitchTypeDef}}\ err\_5Vd;}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00105}00105\ \ \ \mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\_SwitchTypeDef}}\ err\_5Vsi;}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00106}00106\ \ \ \mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\_SwitchTypeDef}}\ err\_Va;}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00107}00107\ \}\mbox{\hyperlink{struct_m_z_k_t___discrete_inputs_type_def}{MZKT\_DiscreteInputsTypeDef}};}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00108}00108\ \textcolor{keyword}{extern}\ \mbox{\hyperlink{struct_m_z_k_t___discrete_inputs_type_def}{MZKT\_DiscreteInputsTypeDef}}\ MZKT\_DISCIN;\textcolor{comment}{}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00109}00109\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00110}00110\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00111}00111\ }
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00112}00112\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_MYLIBS\_INCLUDE\_H\_}}
|
||||
\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00113}00113\ }
|
||||
|
||||
\end{DoxyCode}
|
||||
297
Doc/latex/refman.tex
Normal file
297
Doc/latex/refman.tex
Normal file
@@ -0,0 +1,297 @@
|
||||
% Handle batch mode
|
||||
% to overcome problems with too many open files
|
||||
\let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}
|
||||
\RequirePackage{iftex}
|
||||
\ifLuaTeX
|
||||
\directlua{pdf.setminorversion(7)}
|
||||
\fi
|
||||
\ifXeTeX
|
||||
\special{pdf:minorversion 7}
|
||||
\fi
|
||||
\ifPDFTeX
|
||||
\pdfminorversion=7
|
||||
\fi
|
||||
% Set document class depending on configuration
|
||||
\documentclass[twoside]{book}
|
||||
%% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package
|
||||
\usepackage{ifthen}
|
||||
\ifx\requestedLaTeXdate\undefined
|
||||
\usepackage{array}
|
||||
\else
|
||||
\usepackage{array}[=2016-10-06]
|
||||
\fi
|
||||
%%
|
||||
% Packages required by doxygen
|
||||
\makeatletter
|
||||
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
|
||||
% suppress package identification of infwarerr as it contains the word "warning"
|
||||
\let\@@protected@wlog\protected@wlog
|
||||
\def\protected@wlog#1{\wlog{package info suppressed}}
|
||||
\RequirePackage{infwarerr}
|
||||
\let\protected@wlog\@@protected@wlog
|
||||
\makeatother
|
||||
\IfFormatAtLeastTF{2016/01/01}{}{\usepackage{fixltx2e}} % for \textsubscript
|
||||
\ifPDFTeX
|
||||
\IfFormatAtLeastTF{2015/01/01}{\pdfsuppresswarningpagegroup=1}{}
|
||||
\fi
|
||||
\usepackage{doxygen}
|
||||
\usepackage{graphicx}
|
||||
\iftutex
|
||||
\usepackage{fontspec}
|
||||
\defaultfontfeatures{Ligatures={TeX}}
|
||||
\usepackage{unicode-math}
|
||||
\else
|
||||
\usepackage[utf8]{inputenc}
|
||||
\fi
|
||||
\usepackage{makeidx}
|
||||
\PassOptionsToPackage{warn}{textcomp}
|
||||
\usepackage{textcomp}
|
||||
\usepackage[nointegrals]{wasysym}
|
||||
\usepackage{ifxetex}
|
||||
% NLS support packages
|
||||
% Define default fonts
|
||||
% Font selection
|
||||
\iftutex
|
||||
\else
|
||||
\usepackage[T1]{fontenc}
|
||||
\fi
|
||||
% set main and monospaced font
|
||||
\usepackage[scaled=.90]{helvet}
|
||||
\usepackage{courier}
|
||||
\renewcommand{\familydefault}{\sfdefault}
|
||||
\doxyallsectionsfont{%
|
||||
\fontseries{bc}\selectfont%
|
||||
\color{darkgray}%
|
||||
}
|
||||
\renewcommand{\DoxyLabelFont}{%
|
||||
\fontseries{bc}\selectfont%
|
||||
\color{darkgray}%
|
||||
}
|
||||
\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
|
||||
% Arguments of doxygenemoji:
|
||||
% 1) ':<text>:' form of the emoji, already LaTeX-escaped
|
||||
% 2) file with the name of the emoji without the .png extension
|
||||
% in case image exist use this otherwise use the ':<text>:' form
|
||||
\newcommand{\doxygenemoji}[2]{%
|
||||
\IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}%
|
||||
}
|
||||
% Page & text layout
|
||||
\usepackage{geometry}
|
||||
\geometry{%
|
||||
a4paper,%
|
||||
top=2.5cm,%
|
||||
bottom=2.5cm,%
|
||||
left=2.5cm,%
|
||||
right=2.5cm%
|
||||
}
|
||||
\usepackage{changepage}
|
||||
% Allow a bit of overflow to go unnoticed by other means
|
||||
\tolerance=750
|
||||
\hfuzz=15pt
|
||||
\hbadness=750
|
||||
\setlength{\emergencystretch}{15pt}
|
||||
\setlength{\parindent}{0cm}
|
||||
\newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}}
|
||||
\newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}}
|
||||
\doxynormalparskip
|
||||
% Redefine paragraph/subparagraph environments, using sectsty fonts
|
||||
\makeatletter
|
||||
\renewcommand{\paragraph}{%
|
||||
\@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
|
||||
\normalfont\normalsize\bfseries\SS@parafont%
|
||||
}%
|
||||
}
|
||||
\renewcommand{\subparagraph}{%
|
||||
\@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
|
||||
\normalfont\normalsize\bfseries\SS@subparafont%
|
||||
}%
|
||||
}
|
||||
\makeatother
|
||||
\makeatletter
|
||||
\newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
|
||||
\makeatother
|
||||
% Headers & footers
|
||||
\usepackage{fancyhdr}
|
||||
\pagestyle{fancyplain}
|
||||
\renewcommand{\footrulewidth}{0.4pt}
|
||||
\fancypagestyle{fancyplain}{
|
||||
\fancyhf{}
|
||||
\fancyhead[LE, RO]{\bfseries\thepage}
|
||||
\fancyhead[LO]{\bfseries\rightmark}
|
||||
\fancyhead[RE]{\bfseries\leftmark}
|
||||
\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
|
||||
}
|
||||
\fancypagestyle{plain}{
|
||||
\fancyhf{}
|
||||
\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
|
||||
\renewcommand{\headrulewidth}{0pt}
|
||||
}
|
||||
\pagestyle{fancyplain}
|
||||
\renewcommand{\chaptermark}[1]{%
|
||||
\markboth{#1}{}%
|
||||
}
|
||||
\renewcommand{\sectionmark}[1]{%
|
||||
\markright{\thesection\ #1}%
|
||||
}
|
||||
% ToC, LoF, LoT, bibliography, and index
|
||||
% Indices & bibliography
|
||||
\usepackage[numbers]{natbib}
|
||||
\usepackage[titles]{tocloft}
|
||||
\setcounter{tocdepth}{3}
|
||||
\setcounter{secnumdepth}{5}
|
||||
% creating indexes
|
||||
\makeindex
|
||||
\ifPDFTeX
|
||||
\usepackage{newunicodechar}
|
||||
\makeatletter
|
||||
\def\doxynewunicodechar#1#2{%
|
||||
\@tempswafalse
|
||||
\edef\nuc@tempa{\detokenize{#1}}%
|
||||
\if\relax\nuc@tempa\relax
|
||||
\nuc@emptyargerr
|
||||
\else
|
||||
\edef\@tempb{\expandafter\@car\nuc@tempa\@nil}%
|
||||
\nuc@check
|
||||
\if@tempswa
|
||||
\@namedef{u8:\nuc@tempa}{#2}%
|
||||
\fi
|
||||
\fi
|
||||
}
|
||||
\makeatother
|
||||
\doxynewunicodechar{⁻}{${}^{-}$}% Superscript minus
|
||||
\doxynewunicodechar{²}{${}^{2}$}% Superscript two
|
||||
\doxynewunicodechar{³}{${}^{3}$}% Superscript three
|
||||
\fi
|
||||
% Hyperlinks
|
||||
% Hyperlinks (required, but should be loaded last)
|
||||
\ifPDFTeX
|
||||
\usepackage[pdftex,pagebackref=true]{hyperref}
|
||||
\else
|
||||
\ifXeTeX
|
||||
\usepackage[xetex,pagebackref=true]{hyperref}
|
||||
\else
|
||||
\ifLuaTeX
|
||||
\usepackage[luatex,pagebackref=true]{hyperref}
|
||||
\else
|
||||
\usepackage[ps2pdf,pagebackref=true]{hyperref}
|
||||
\fi
|
||||
\fi
|
||||
\fi
|
||||
\hypersetup{%
|
||||
colorlinks=true,%
|
||||
linkcolor=blue,%
|
||||
citecolor=blue,%
|
||||
unicode,%
|
||||
pdftitle={My\+Libs},%
|
||||
pdfsubject={Расширенные библиотеки для STM32}%
|
||||
}
|
||||
% Custom commands used by the header
|
||||
% Custom commands
|
||||
\newcommand{\clearemptydoublepage}{%
|
||||
\newpage{\pagestyle{empty}\cleardoublepage}%
|
||||
}
|
||||
% caption style definition
|
||||
\usepackage{caption}
|
||||
\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
|
||||
% in page table of contents
|
||||
\IfFormatAtLeastTF{2023/05/01}{\usepackage[deeplevels]{etoc}}{\usepackage[deeplevels]{etoc_doxygen}}
|
||||
\etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
|
||||
\etocsetlevel{subsubsubsection}{4}
|
||||
\etocsetlevel{subsubsubsubsection}{5}
|
||||
\etocsetlevel{subsubsubsubsubsection}{6}
|
||||
\etocsetlevel{subsubsubsubsubsubsection}{7}
|
||||
\etocsetlevel{paragraph}{8}
|
||||
\etocsetlevel{subparagraph}{9}
|
||||
% prevent numbers overlap the titles in toc
|
||||
\renewcommand{\numberline}[1]{#1~}
|
||||
% End of preamble, now comes the document contents
|
||||
%===== C O N T E N T S =====
|
||||
\begin{document}
|
||||
\raggedbottom
|
||||
% Titlepage & ToC
|
||||
% To avoid duplicate page anchors due to reuse of same numbers for
|
||||
% the index (be it as roman numbers)
|
||||
\hypersetup{pageanchor=false,
|
||||
bookmarksnumbered=true,
|
||||
pdfencoding=unicode
|
||||
}
|
||||
\pagenumbering{alph}
|
||||
\begin{titlepage}
|
||||
\vspace*{7cm}
|
||||
\begin{center}%
|
||||
{\Large My\+Libs}\\
|
||||
[1ex]\large 1.\+0 \\
|
||||
\vspace*{1cm}
|
||||
{\large Generated by Doxygen 1.14.0}\\
|
||||
\end{center}
|
||||
\end{titlepage}
|
||||
\clearemptydoublepage
|
||||
\pagenumbering{roman}
|
||||
\tableofcontents
|
||||
\clearemptydoublepage
|
||||
\pagenumbering{arabic}
|
||||
% re-enable anchors again
|
||||
\hypersetup{pageanchor=true}
|
||||
%--- Begin generated contents ---
|
||||
\chapter{Topic Index}
|
||||
\input{topics}
|
||||
\chapter{Class Index}
|
||||
\input{annotated}
|
||||
\chapter{File Index}
|
||||
\input{files}
|
||||
\chapter{Topic Documentation}
|
||||
\input{group___m_y_l_i_b_s___a_l_l}
|
||||
\chapter{Class Documentation}
|
||||
\input{struct_a_d_c___tracker_type_def}
|
||||
\input{struct_a_d_c_channel___tracker_type_def}
|
||||
\input{struct_g_p_i_o___l_e_d_type_def}
|
||||
\input{struct_g_p_i_o___switch_type_def}
|
||||
\input{struct_h_f___stack_frame__t}
|
||||
\input{struct_measure___tracker_type_def}
|
||||
\input{struct_measure_handle___tracker_type_def}
|
||||
\input{struct_m_z_k_t___discrete_inputs_type_def}
|
||||
\input{struct_m_z_k_t___l_e_ds_type_def}
|
||||
\input{struct_r_s___tracker_type_def}
|
||||
\input{struct_r_t_t___flash_header__t}
|
||||
\input{struct_s_p_i___settings_type_def}
|
||||
\input{struct_t_i_m___encoder_type_def}
|
||||
\input{struct_t_i_m___settings_type_def}
|
||||
\input{struct_u_a_r_t___settings_type_def}
|
||||
\input{unionuint16___bit_type_def}
|
||||
\input{unionuint32___bit_type_def}
|
||||
\input{unionuint64___bit_type_def}
|
||||
\input{unionuint8___bit_type_def}
|
||||
\chapter{File Documentation}
|
||||
\input{____general__flash_8h_source}
|
||||
\input{____general__spi_8h_source}
|
||||
\input{____general__tim_8h_source}
|
||||
\input{____general__uart_8h_source}
|
||||
\input{bit__access_8h_source}
|
||||
\input{general__gpio_8h}
|
||||
\input{general__gpio_8h_source}
|
||||
\input{mylibs__config_8h}
|
||||
\input{mylibs__config_8h_source}
|
||||
\input{mylibs__defs_8h}
|
||||
\input{mylibs__defs_8h_source}
|
||||
\input{mylibs__include_8h}
|
||||
\input{mylibs__include_8h_source}
|
||||
\input{trace_8h}
|
||||
\input{trace_8h_source}
|
||||
\input{trackers_8h}
|
||||
\input{trackers_8h_source}
|
||||
\input{____general__flash_8c_source}
|
||||
\input{____general__spi_8c_source}
|
||||
\input{____general__tim_8c_source}
|
||||
\input{____general__uart_8c_source}
|
||||
\input{general__gpio_8c}
|
||||
\input{general__gpio_8c_source}
|
||||
%--- End generated contents ---
|
||||
% Index
|
||||
\backmatter
|
||||
\newpage
|
||||
\phantomsection
|
||||
\clearemptydoublepage
|
||||
\addcontentsline{toc}{chapter}{\indexname}
|
||||
\printindex
|
||||
% Required for some languages (in combination with latexdocumentpre from the header)
|
||||
\end{document}
|
||||
79
Doc/latex/struct_a_d_c___tracker_type_def.tex
Normal file
79
Doc/latex/struct_a_d_c___tracker_type_def.tex
Normal file
@@ -0,0 +1,79 @@
|
||||
\doxysection{ADC\+\_\+\+Tracker\+Type\+Def Struct Reference}
|
||||
\hypertarget{struct_a_d_c___tracker_type_def}{}\label{struct_a_d_c___tracker_type_def}\index{ADC\_TrackerTypeDef@{ADC\_TrackerTypeDef}}
|
||||
|
||||
|
||||
Struct for trackers for ADC.
|
||||
|
||||
|
||||
|
||||
|
||||
{\ttfamily \#include $<$mylibs\+\_\+include.\+h$>$}
|
||||
|
||||
\doxysubsubsection*{Public Attributes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
uint32\+\_\+t \mbox{\hyperlink{struct_a_d_c___tracker_type_def_a74cb149ecda094f4c20f75dc8fa845bc}{cnt\+\_\+ok}}
|
||||
\item
|
||||
uint32\+\_\+t \mbox{\hyperlink{struct_a_d_c___tracker_type_def_a49e418692aa3e63958e57ad9209fa629}{cnt\+\_\+err}}
|
||||
\item
|
||||
uint32\+\_\+t \mbox{\hyperlink{struct_a_d_c___tracker_type_def_a036a4bf139661217bd5f984a14ba590a}{cnt\+\_\+warn}}
|
||||
\item
|
||||
uint32\+\_\+t \mbox{\hyperlink{struct_a_d_c___tracker_type_def_a3c1042ec1ddc9c59db27f49636402b11}{user}} \mbox{[}ADC\+\_\+\+USER\+\_\+\+VARS\+\_\+\+NUMB\mbox{]}
|
||||
\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsection{Detailed Description}
|
||||
Struct for trackers for ADC.
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__include_8h_source_l00079}{79}} of file \mbox{\hyperlink{mylibs__include_8h_source}{mylibs\+\_\+include.\+h}}.
|
||||
|
||||
|
||||
|
||||
\label{doc-variable-members}
|
||||
\Hypertarget{struct_a_d_c___tracker_type_def_doc-variable-members}
|
||||
\doxysubsection{Member Data Documentation}
|
||||
\Hypertarget{struct_a_d_c___tracker_type_def_a74cb149ecda094f4c20f75dc8fa845bc}\index{ADC\_TrackerTypeDef@{ADC\_TrackerTypeDef}!cnt\_ok@{cnt\_ok}}
|
||||
\index{cnt\_ok@{cnt\_ok}!ADC\_TrackerTypeDef@{ADC\_TrackerTypeDef}}
|
||||
\doxysubsubsection{\texorpdfstring{cnt\_ok}{cnt\_ok}}
|
||||
{\footnotesize\ttfamily \label{struct_a_d_c___tracker_type_def_a74cb149ecda094f4c20f75dc8fa845bc}
|
||||
uint32\+\_\+t ADC\+\_\+\+Tracker\+Type\+Def\+::cnt\+\_\+ok}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__include_8h_source_l00079}{79}} of file \mbox{\hyperlink{mylibs__include_8h_source}{mylibs\+\_\+include.\+h}}.
|
||||
|
||||
\Hypertarget{struct_a_d_c___tracker_type_def_a49e418692aa3e63958e57ad9209fa629}\index{ADC\_TrackerTypeDef@{ADC\_TrackerTypeDef}!cnt\_err@{cnt\_err}}
|
||||
\index{cnt\_err@{cnt\_err}!ADC\_TrackerTypeDef@{ADC\_TrackerTypeDef}}
|
||||
\doxysubsubsection{\texorpdfstring{cnt\_err}{cnt\_err}}
|
||||
{\footnotesize\ttfamily \label{struct_a_d_c___tracker_type_def_a49e418692aa3e63958e57ad9209fa629}
|
||||
uint32\+\_\+t ADC\+\_\+\+Tracker\+Type\+Def\+::cnt\+\_\+err}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__include_8h_source_l00079}{79}} of file \mbox{\hyperlink{mylibs__include_8h_source}{mylibs\+\_\+include.\+h}}.
|
||||
|
||||
\Hypertarget{struct_a_d_c___tracker_type_def_a036a4bf139661217bd5f984a14ba590a}\index{ADC\_TrackerTypeDef@{ADC\_TrackerTypeDef}!cnt\_warn@{cnt\_warn}}
|
||||
\index{cnt\_warn@{cnt\_warn}!ADC\_TrackerTypeDef@{ADC\_TrackerTypeDef}}
|
||||
\doxysubsubsection{\texorpdfstring{cnt\_warn}{cnt\_warn}}
|
||||
{\footnotesize\ttfamily \label{struct_a_d_c___tracker_type_def_a036a4bf139661217bd5f984a14ba590a}
|
||||
uint32\+\_\+t ADC\+\_\+\+Tracker\+Type\+Def\+::cnt\+\_\+warn}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__include_8h_source_l00079}{79}} of file \mbox{\hyperlink{mylibs__include_8h_source}{mylibs\+\_\+include.\+h}}.
|
||||
|
||||
\Hypertarget{struct_a_d_c___tracker_type_def_a3c1042ec1ddc9c59db27f49636402b11}\index{ADC\_TrackerTypeDef@{ADC\_TrackerTypeDef}!user@{user}}
|
||||
\index{user@{user}!ADC\_TrackerTypeDef@{ADC\_TrackerTypeDef}}
|
||||
\doxysubsubsection{\texorpdfstring{user}{user}}
|
||||
{\footnotesize\ttfamily \label{struct_a_d_c___tracker_type_def_a3c1042ec1ddc9c59db27f49636402b11}
|
||||
uint32\+\_\+t ADC\+\_\+\+Tracker\+Type\+Def\+::user\mbox{[}ADC\+\_\+\+USER\+\_\+\+VARS\+\_\+\+NUMB\mbox{]}}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__include_8h_source_l00079}{79}} of file \mbox{\hyperlink{mylibs__include_8h_source}{mylibs\+\_\+include.\+h}}.
|
||||
|
||||
|
||||
|
||||
The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
|
||||
\item
|
||||
E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{mylibs__include_8h}{mylibs\+\_\+include.\+h}}\end{DoxyCompactItemize}
|
||||
79
Doc/latex/struct_a_d_c_channel___tracker_type_def.tex
Normal file
79
Doc/latex/struct_a_d_c_channel___tracker_type_def.tex
Normal file
@@ -0,0 +1,79 @@
|
||||
\doxysection{ADCChannel\+\_\+\+Tracker\+Type\+Def Struct Reference}
|
||||
\hypertarget{struct_a_d_c_channel___tracker_type_def}{}\label{struct_a_d_c_channel___tracker_type_def}\index{ADCChannel\_TrackerTypeDef@{ADCChannel\_TrackerTypeDef}}
|
||||
|
||||
|
||||
Struct for trackers for ADC Channel.
|
||||
|
||||
|
||||
|
||||
|
||||
{\ttfamily \#include $<$mylibs\+\_\+include.\+h$>$}
|
||||
|
||||
\doxysubsubsection*{Public Attributes}
|
||||
\begin{DoxyCompactItemize}
|
||||
\item
|
||||
uint32\+\_\+t \mbox{\hyperlink{struct_a_d_c_channel___tracker_type_def_ae75ccd9f82dfea74bc167c7976938b6e}{cnt\+\_\+ok}}
|
||||
\item
|
||||
uint32\+\_\+t \mbox{\hyperlink{struct_a_d_c_channel___tracker_type_def_a65bac4500fde14a33851cb14dd356a5f}{cnt\+\_\+err}}
|
||||
\item
|
||||
uint32\+\_\+t \mbox{\hyperlink{struct_a_d_c_channel___tracker_type_def_ac0390564ed5ac8186ce48fcf0e6a124c}{cnt\+\_\+warn}}
|
||||
\item
|
||||
uint32\+\_\+t \mbox{\hyperlink{struct_a_d_c_channel___tracker_type_def_a367851c37792afa47935ccd855533a91}{user}} \mbox{[}ADC\+\_\+\+CH\+\_\+\+USER\+\_\+\+VARS\+\_\+\+NUMB\mbox{]}
|
||||
\end{DoxyCompactItemize}
|
||||
|
||||
|
||||
\doxysubsection{Detailed Description}
|
||||
Struct for trackers for ADC Channel.
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__include_8h_source_l00081}{81}} of file \mbox{\hyperlink{mylibs__include_8h_source}{mylibs\+\_\+include.\+h}}.
|
||||
|
||||
|
||||
|
||||
\label{doc-variable-members}
|
||||
\Hypertarget{struct_a_d_c_channel___tracker_type_def_doc-variable-members}
|
||||
\doxysubsection{Member Data Documentation}
|
||||
\Hypertarget{struct_a_d_c_channel___tracker_type_def_ae75ccd9f82dfea74bc167c7976938b6e}\index{ADCChannel\_TrackerTypeDef@{ADCChannel\_TrackerTypeDef}!cnt\_ok@{cnt\_ok}}
|
||||
\index{cnt\_ok@{cnt\_ok}!ADCChannel\_TrackerTypeDef@{ADCChannel\_TrackerTypeDef}}
|
||||
\doxysubsubsection{\texorpdfstring{cnt\_ok}{cnt\_ok}}
|
||||
{\footnotesize\ttfamily \label{struct_a_d_c_channel___tracker_type_def_ae75ccd9f82dfea74bc167c7976938b6e}
|
||||
uint32\+\_\+t ADCChannel\+\_\+\+Tracker\+Type\+Def\+::cnt\+\_\+ok}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__include_8h_source_l00081}{81}} of file \mbox{\hyperlink{mylibs__include_8h_source}{mylibs\+\_\+include.\+h}}.
|
||||
|
||||
\Hypertarget{struct_a_d_c_channel___tracker_type_def_a65bac4500fde14a33851cb14dd356a5f}\index{ADCChannel\_TrackerTypeDef@{ADCChannel\_TrackerTypeDef}!cnt\_err@{cnt\_err}}
|
||||
\index{cnt\_err@{cnt\_err}!ADCChannel\_TrackerTypeDef@{ADCChannel\_TrackerTypeDef}}
|
||||
\doxysubsubsection{\texorpdfstring{cnt\_err}{cnt\_err}}
|
||||
{\footnotesize\ttfamily \label{struct_a_d_c_channel___tracker_type_def_a65bac4500fde14a33851cb14dd356a5f}
|
||||
uint32\+\_\+t ADCChannel\+\_\+\+Tracker\+Type\+Def\+::cnt\+\_\+err}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__include_8h_source_l00081}{81}} of file \mbox{\hyperlink{mylibs__include_8h_source}{mylibs\+\_\+include.\+h}}.
|
||||
|
||||
\Hypertarget{struct_a_d_c_channel___tracker_type_def_ac0390564ed5ac8186ce48fcf0e6a124c}\index{ADCChannel\_TrackerTypeDef@{ADCChannel\_TrackerTypeDef}!cnt\_warn@{cnt\_warn}}
|
||||
\index{cnt\_warn@{cnt\_warn}!ADCChannel\_TrackerTypeDef@{ADCChannel\_TrackerTypeDef}}
|
||||
\doxysubsubsection{\texorpdfstring{cnt\_warn}{cnt\_warn}}
|
||||
{\footnotesize\ttfamily \label{struct_a_d_c_channel___tracker_type_def_ac0390564ed5ac8186ce48fcf0e6a124c}
|
||||
uint32\+\_\+t ADCChannel\+\_\+\+Tracker\+Type\+Def\+::cnt\+\_\+warn}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__include_8h_source_l00081}{81}} of file \mbox{\hyperlink{mylibs__include_8h_source}{mylibs\+\_\+include.\+h}}.
|
||||
|
||||
\Hypertarget{struct_a_d_c_channel___tracker_type_def_a367851c37792afa47935ccd855533a91}\index{ADCChannel\_TrackerTypeDef@{ADCChannel\_TrackerTypeDef}!user@{user}}
|
||||
\index{user@{user}!ADCChannel\_TrackerTypeDef@{ADCChannel\_TrackerTypeDef}}
|
||||
\doxysubsubsection{\texorpdfstring{user}{user}}
|
||||
{\footnotesize\ttfamily \label{struct_a_d_c_channel___tracker_type_def_a367851c37792afa47935ccd855533a91}
|
||||
uint32\+\_\+t ADCChannel\+\_\+\+Tracker\+Type\+Def\+::user\mbox{[}ADC\+\_\+\+CH\+\_\+\+USER\+\_\+\+VARS\+\_\+\+NUMB\mbox{]}}
|
||||
|
||||
|
||||
|
||||
Definition at line \mbox{\hyperlink{mylibs__include_8h_source_l00081}{81}} of file \mbox{\hyperlink{mylibs__include_8h_source}{mylibs\+\_\+include.\+h}}.
|
||||
|
||||
|
||||
|
||||
The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
|
||||
\item
|
||||
E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{mylibs__include_8h}{mylibs\+\_\+include.\+h}}\end{DoxyCompactItemize}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user