Micro template library A library for building device drivers
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

150 lines
8.3 KiB

  1. \hypertarget{classutl_1_1i2c__bb__i}{}\section{utl\+:\+:i2c\+\_\+bb\+\_\+i$<$ impl\+\_\+t $>$ Class Template Reference}
  2. \label{classutl_1_1i2c__bb__i}\index{utl\+::i2c\+\_\+bb\+\_\+i$<$ impl\+\_\+t $>$@{utl\+::i2c\+\_\+bb\+\_\+i$<$ impl\+\_\+t $>$}}
  3. A bit banking implementation of i2c bus inherited from \mbox{\hyperlink{classutl_1_1i2c__i}{i2c\+\_\+i}} base class.
  4. {\ttfamily \#include $<$i2c\+\_\+bb.\+h$>$}
  5. Inheritance diagram for utl\+:\+:i2c\+\_\+bb\+\_\+i$<$ impl\+\_\+t $>$\+:\begin{figure}[H]
  6. \begin{center}
  7. \leavevmode
  8. \includegraphics[height=2.000000cm]{classutl_1_1i2c__bb__i}
  9. \end{center}
  10. \end{figure}
  11. \subsection*{Public Types}
  12. \begin{DoxyCompactItemize}
  13. \item
  14. enum \mbox{\hyperlink{classutl_1_1i2c__bb__i_a4369b434fde250d503bfdc07d5c6a26d}{S\+D\+A\+Mode}} \{ \mbox{\hyperlink{classutl_1_1i2c__bb__i_a4369b434fde250d503bfdc07d5c6a26daa84cc046d48610b05c21fd3670d0c829}{S\+D\+A\+Mode\+::\+I\+N\+P\+UT}} =0,
  15. \mbox{\hyperlink{classutl_1_1i2c__bb__i_a4369b434fde250d503bfdc07d5c6a26da50a87f0d71f7221582dad4bf507a0f34}{S\+D\+A\+Mode\+::\+O\+U\+T\+P\+UT}}
  16. \}
  17. \begin{DoxyCompactList}\small\item\em S\+DA pin direction enumerator. \end{DoxyCompactList}\item
  18. using \mbox{\hyperlink{classutl_1_1i2c__bb__i_a428c847d950993fa2cd005416edfb720}{type}} = \mbox{\hyperlink{classutl_1_1i2c__bb__i}{i2c\+\_\+bb\+\_\+i}}$<$ impl\+\_\+t $>$
  19. \begin{DoxyCompactList}\small\item\em Export type as identity meta-\/function. \end{DoxyCompactList}\item
  20. using \mbox{\hyperlink{classutl_1_1i2c__bb__i_ad2872b7e17116f8379144488fe135052}{Sequence}} = typename \mbox{\hyperlink{classutl_1_1i2c__i}{i2c\+\_\+i}}$<$ \mbox{\hyperlink{classutl_1_1i2c__i_aa9267a8602702b78f188e0cf61b68a55}{type}} $>$\+::\mbox{\hyperlink{classutl_1_1i2c__i_a7e2dde443c6c9bde4a2293beb22950c5}{Sequence}}
  21. \end{DoxyCompactItemize}
  22. \subsection*{Protected Member Functions}
  23. \begin{Indent}\textbf{ Object lifetime}\par
  24. \begin{DoxyCompactItemize}
  25. \item
  26. \mbox{\hyperlink{classutl_1_1i2c__bb__i_ac2d9b97778a5dd57eb5e6425b4b0833c}{$\sim$i2c\+\_\+bb\+\_\+i}} () noexcept=default
  27. \begin{DoxyCompactList}\small\item\em A default destructor, allow destructor from derived only. \end{DoxyCompactList}\item
  28. \mbox{\hyperlink{classutl_1_1i2c__bb__i_ab657379ca2e4b3624e2d4520542a9464}{i2c\+\_\+bb\+\_\+i}} (uint32\+\_\+t clk) noexcept
  29. \begin{DoxyCompactList}\small\item\em A default constructor. \end{DoxyCompactList}\end{DoxyCompactItemize}
  30. \end{Indent}
  31. \subsection*{Additional Inherited Members}
  32. \subsection{Detailed Description}
  33. \subsubsection*{template$<$typename impl\+\_\+t$>$\newline
  34. class utl\+::i2c\+\_\+bb\+\_\+i$<$ impl\+\_\+t $>$}
  35. A bit banking implementation of i2c bus inherited from \mbox{\hyperlink{classutl_1_1i2c__i}{i2c\+\_\+i}} base class.
  36. \begin{DoxySeeAlso}{See also}
  37. \mbox{\hyperlink{classutl_1_1i2c__i}{i2c\+\_\+i}}
  38. \end{DoxySeeAlso}
  39. I2C bit banking interface template class providing an I2C using bit banking using C\+R\+TP.
  40. \begin{DoxyParams}{Parameters}
  41. {\em impl\+\_\+t} & The C\+R\+TP type (the derived/implementation class typename). \\
  42. \hline
  43. \end{DoxyParams}
  44. Definition at line 47 of file i2c\+\_\+bb.\+h.
  45. \subsection{Member Typedef Documentation}
  46. \mbox{\Hypertarget{classutl_1_1i2c__bb__i_ad2872b7e17116f8379144488fe135052}\label{classutl_1_1i2c__bb__i_ad2872b7e17116f8379144488fe135052}}
  47. \index{utl\+::i2c\+\_\+bb\+\_\+i@{utl\+::i2c\+\_\+bb\+\_\+i}!Sequence@{Sequence}}
  48. \index{Sequence@{Sequence}!utl\+::i2c\+\_\+bb\+\_\+i@{utl\+::i2c\+\_\+bb\+\_\+i}}
  49. \subsubsection{\texorpdfstring{Sequence}{Sequence}}
  50. {\footnotesize\ttfamily template$<$typename impl\+\_\+t$>$ \\
  51. using \mbox{\hyperlink{classutl_1_1i2c__bb__i}{utl\+::i2c\+\_\+bb\+\_\+i}}$<$ impl\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1i2c__i_a7e2dde443c6c9bde4a2293beb22950c5}{Sequence}} = typename \mbox{\hyperlink{classutl_1_1i2c__i}{i2c\+\_\+i}}$<$\mbox{\hyperlink{classutl_1_1i2c__i_aa9267a8602702b78f188e0cf61b68a55}{type}}$>$\+::\mbox{\hyperlink{classutl_1_1i2c__i_a7e2dde443c6c9bde4a2293beb22950c5}{Sequence}}}
  52. Definition at line 53 of file i2c\+\_\+bb.\+h.
  53. \mbox{\Hypertarget{classutl_1_1i2c__bb__i_a428c847d950993fa2cd005416edfb720}\label{classutl_1_1i2c__bb__i_a428c847d950993fa2cd005416edfb720}}
  54. \index{utl\+::i2c\+\_\+bb\+\_\+i@{utl\+::i2c\+\_\+bb\+\_\+i}!type@{type}}
  55. \index{type@{type}!utl\+::i2c\+\_\+bb\+\_\+i@{utl\+::i2c\+\_\+bb\+\_\+i}}
  56. \subsubsection{\texorpdfstring{type}{type}}
  57. {\footnotesize\ttfamily template$<$typename impl\+\_\+t$>$ \\
  58. using \mbox{\hyperlink{classutl_1_1i2c__bb__i}{utl\+::i2c\+\_\+bb\+\_\+i}}$<$ impl\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1i2c__i_aa9267a8602702b78f188e0cf61b68a55}{type}} = \mbox{\hyperlink{classutl_1_1i2c__bb__i}{i2c\+\_\+bb\+\_\+i}}$<$impl\+\_\+t$>$}
  59. Export type as identity meta-\/function.
  60. Definition at line 52 of file i2c\+\_\+bb.\+h.
  61. \subsection{Member Enumeration Documentation}
  62. \mbox{\Hypertarget{classutl_1_1i2c__bb__i_a4369b434fde250d503bfdc07d5c6a26d}\label{classutl_1_1i2c__bb__i_a4369b434fde250d503bfdc07d5c6a26d}}
  63. \index{utl\+::i2c\+\_\+bb\+\_\+i@{utl\+::i2c\+\_\+bb\+\_\+i}!S\+D\+A\+Mode@{S\+D\+A\+Mode}}
  64. \index{S\+D\+A\+Mode@{S\+D\+A\+Mode}!utl\+::i2c\+\_\+bb\+\_\+i@{utl\+::i2c\+\_\+bb\+\_\+i}}
  65. \subsubsection{\texorpdfstring{S\+D\+A\+Mode}{SDAMode}}
  66. {\footnotesize\ttfamily template$<$typename impl\+\_\+t$>$ \\
  67. enum \mbox{\hyperlink{classutl_1_1i2c__bb__i_a4369b434fde250d503bfdc07d5c6a26d}{utl\+::i2c\+\_\+bb\+\_\+i\+::\+S\+D\+A\+Mode}}\hspace{0.3cm}{\ttfamily [strong]}}
  68. S\+DA pin direction enumerator.
  69. \begin{DoxyEnumFields}{Enumerator}
  70. \raisebox{\heightof{T}}[0pt][0pt]{\index{I\+N\+P\+UT@{I\+N\+P\+UT}!utl\+::i2c\+\_\+bb\+\_\+i@{utl\+::i2c\+\_\+bb\+\_\+i}}\index{utl\+::i2c\+\_\+bb\+\_\+i@{utl\+::i2c\+\_\+bb\+\_\+i}!I\+N\+P\+UT@{I\+N\+P\+UT}}}\mbox{\Hypertarget{classutl_1_1i2c__bb__i_a4369b434fde250d503bfdc07d5c6a26daa84cc046d48610b05c21fd3670d0c829}\label{classutl_1_1i2c__bb__i_a4369b434fde250d503bfdc07d5c6a26daa84cc046d48610b05c21fd3670d0c829}}
  71. I\+N\+P\+UT&\\
  72. \hline
  73. \raisebox{\heightof{T}}[0pt][0pt]{\index{O\+U\+T\+P\+UT@{O\+U\+T\+P\+UT}!utl\+::i2c\+\_\+bb\+\_\+i@{utl\+::i2c\+\_\+bb\+\_\+i}}\index{utl\+::i2c\+\_\+bb\+\_\+i@{utl\+::i2c\+\_\+bb\+\_\+i}!O\+U\+T\+P\+UT@{O\+U\+T\+P\+UT}}}\mbox{\Hypertarget{classutl_1_1i2c__bb__i_a4369b434fde250d503bfdc07d5c6a26da50a87f0d71f7221582dad4bf507a0f34}\label{classutl_1_1i2c__bb__i_a4369b434fde250d503bfdc07d5c6a26da50a87f0d71f7221582dad4bf507a0f34}}
  74. O\+U\+T\+P\+UT&\\
  75. \hline
  76. \end{DoxyEnumFields}
  77. Definition at line 55 of file i2c\+\_\+bb.\+h.
  78. \subsection{Constructor \& Destructor Documentation}
  79. \mbox{\Hypertarget{classutl_1_1i2c__bb__i_ac2d9b97778a5dd57eb5e6425b4b0833c}\label{classutl_1_1i2c__bb__i_ac2d9b97778a5dd57eb5e6425b4b0833c}}
  80. \index{utl\+::i2c\+\_\+bb\+\_\+i@{utl\+::i2c\+\_\+bb\+\_\+i}!````~i2c\+\_\+bb\+\_\+i@{$\sim$i2c\+\_\+bb\+\_\+i}}
  81. \index{````~i2c\+\_\+bb\+\_\+i@{$\sim$i2c\+\_\+bb\+\_\+i}!utl\+::i2c\+\_\+bb\+\_\+i@{utl\+::i2c\+\_\+bb\+\_\+i}}
  82. \subsubsection{\texorpdfstring{$\sim$i2c\+\_\+bb\+\_\+i()}{~i2c\_bb\_i()}}
  83. {\footnotesize\ttfamily template$<$typename impl\+\_\+t$>$ \\
  84. \mbox{\hyperlink{classutl_1_1i2c__bb__i}{utl\+::i2c\+\_\+bb\+\_\+i}}$<$ impl\+\_\+t $>$\+::$\sim$\mbox{\hyperlink{classutl_1_1i2c__bb__i}{i2c\+\_\+bb\+\_\+i}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [default]}, {\ttfamily [noexcept]}}
  85. A default destructor, allow destructor from derived only.
  86. \mbox{\Hypertarget{classutl_1_1i2c__bb__i_ab657379ca2e4b3624e2d4520542a9464}\label{classutl_1_1i2c__bb__i_ab657379ca2e4b3624e2d4520542a9464}}
  87. \index{utl\+::i2c\+\_\+bb\+\_\+i@{utl\+::i2c\+\_\+bb\+\_\+i}!i2c\+\_\+bb\+\_\+i@{i2c\+\_\+bb\+\_\+i}}
  88. \index{i2c\+\_\+bb\+\_\+i@{i2c\+\_\+bb\+\_\+i}!utl\+::i2c\+\_\+bb\+\_\+i@{utl\+::i2c\+\_\+bb\+\_\+i}}
  89. \subsubsection{\texorpdfstring{i2c\+\_\+bb\+\_\+i()}{i2c\_bb\_i()}}
  90. {\footnotesize\ttfamily template$<$typename impl\+\_\+t$>$ \\
  91. \mbox{\hyperlink{classutl_1_1i2c__bb__i}{utl\+::i2c\+\_\+bb\+\_\+i}}$<$ impl\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1i2c__bb__i}{i2c\+\_\+bb\+\_\+i}} (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{clk }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [protected]}, {\ttfamily [noexcept]}}
  92. A default constructor.
  93. Definition at line 68 of file i2c\+\_\+bb.\+h.
  94. The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
  95. \item
  96. include/utl/com/\mbox{\hyperlink{i2c__bb_8h}{i2c\+\_\+bb.\+h}}\end{DoxyCompactItemize}