Micro template library A library for building device drivers
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 

68 Zeilen
5.5 KiB

  1. \hypertarget{spi_8h}{}\section{include/utl/com/spi.h File Reference}
  2. \label{spi_8h}\index{include/utl/com/spi.\+h@{include/utl/com/spi.\+h}}
  3. An Abstract base class interface for the spi bus.
  4. {\ttfamily \#include $<$utl/core/impl.\+h$>$}\newline
  5. {\ttfamily \#include $<$utl/core/crtp.\+h$>$}\newline
  6. {\ttfamily \#include $<$utl/meta/meta.\+h$>$}\newline
  7. \subsection*{Classes}
  8. \begin{DoxyCompactItemize}
  9. \item
  10. class \mbox{\hyperlink{classutl_1_1spi__i}{utl\+::spi\+\_\+i$<$ impl\+\_\+t $>$}}
  11. \item
  12. class \mbox{\hyperlink{classutl_1_1spi__i_3_01virtual__tag_01_4}{utl\+::spi\+\_\+i$<$ virtual\+\_\+tag $>$}}
  13. \begin{DoxyCompactList}\small\item\em A virtual base class implementation. \end{DoxyCompactList}\item
  14. struct \mbox{\hyperlink{structutl_1_1spi__i__details_1_1is__spi__}{utl\+::spi\+\_\+i\+\_\+details\+::is\+\_\+spi\+\_\+$<$ \+\_\+\+Tp, typename $>$}}
  15. \begin{DoxyCompactList}\small\item\em Primary template to catch any non S\+PI interface types. \end{DoxyCompactList}\item
  16. struct \mbox{\hyperlink{structutl_1_1spi__i__details_1_1is__spi___3_01___tp_00_01meta_1_1void__t_3_01meta_1_1use__if__sa2db29f6d65d34ecf5e49ec30b6600d78}{utl\+::spi\+\_\+i\+\_\+details\+::is\+\_\+spi\+\_\+$<$ \+\_\+\+Tp, meta\+::void\+\_\+t$<$ meta\+::use\+\_\+if\+\_\+same\+\_\+t$<$ try\+\_\+cclock\+\_\+t$<$ \+\_\+\+Tp $>$, uint32\+\_\+t $>$, meta\+::use\+\_\+if\+\_\+same\+\_\+t$<$ try\+\_\+clock\+\_\+t$<$ \+\_\+\+Tp $>$, void $>$, meta\+::use\+\_\+if\+\_\+same\+\_\+t$<$ try\+\_\+tx\+\_\+t$<$ \+\_\+\+Tp $>$, byte\+\_\+t $>$, meta\+::use\+\_\+if\+\_\+same\+\_\+t$<$ try\+\_\+rx\+\_\+t$<$ \+\_\+\+Tp $>$, byte\+\_\+t $>$ $>$ $>$}}
  17. \begin{DoxyCompactList}\small\item\em template to catch a proper S\+PI interface type \end{DoxyCompactList}\end{DoxyCompactItemize}
  18. \subsection*{Namespaces}
  19. \begin{DoxyCompactItemize}
  20. \item
  21. \mbox{\hyperlink{namespaceutl}{utl}}
  22. \begin{DoxyCompactList}\small\item\em S\+TL\textquotesingle{}s core language concepts. \end{DoxyCompactList}\item
  23. \mbox{\hyperlink{namespaceutl_1_1spi}{utl\+::spi}}
  24. \begin{DoxyCompactList}\small\item\em Abstract base class for spi bus. \end{DoxyCompactList}\item
  25. \mbox{\hyperlink{namespaceutl_1_1spi__i__details}{utl\+::spi\+\_\+i\+\_\+details}}
  26. \end{DoxyCompactItemize}
  27. \subsection*{Typedefs}
  28. \begin{DoxyCompactItemize}
  29. \item
  30. {\footnotesize template$<$class \+\_\+\+Tp $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1spi__i__details_ae1a4fad6acf8faccc5e85ee9b710c109}{utl\+::spi\+\_\+i\+\_\+details\+::try\+\_\+cclock\+\_\+t}} = decltype(declval$<$ const \+\_\+\+Tp $>$().clock())
  31. \item
  32. {\footnotesize template$<$class \+\_\+\+Tp $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1spi__i__details_af2f4800aa77af82767a3ac55b9b242a6}{utl\+::spi\+\_\+i\+\_\+details\+::try\+\_\+clock\+\_\+t}} = decltype(declval$<$ \+\_\+\+Tp $>$().clock(declval$<$ uint32\+\_\+t $>$()))
  33. \item
  34. {\footnotesize template$<$class \+\_\+\+Tp $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1spi__i__details_a755d8f10cfde3f5c3b9900eb11c858bd}{utl\+::spi\+\_\+i\+\_\+details\+::try\+\_\+tx\+\_\+t}} = decltype(declval$<$ \+\_\+\+Tp $>$().tx\+\_\+data(declval$<$ byte\+\_\+t $>$()))
  35. \item
  36. {\footnotesize template$<$class \+\_\+\+Tp $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1spi__i__details_a4dcf3c71fddf790e45a3be2c19906c97}{utl\+::spi\+\_\+i\+\_\+details\+::try\+\_\+rx\+\_\+t}} = decltype(declval$<$ \+\_\+\+Tp $>$().rx\+\_\+data())
  37. \end{DoxyCompactItemize}
  38. \subsection*{Enumerations}
  39. \begin{DoxyCompactItemize}
  40. \item
  41. enum \mbox{\hyperlink{namespaceutl_1_1spi_aed6b713381c193c598572ebac0b284cc}{utl\+::spi\+::bit\+Order}} \{ \mbox{\hyperlink{namespaceutl_1_1spi_aed6b713381c193c598572ebac0b284cca6db67adee32c3bd4ff03acf3244e1b4b}{utl\+::spi\+::bit\+Order\+::\+L\+S\+B\+\_\+\+First}} =0x01,
  42. \mbox{\hyperlink{namespaceutl_1_1spi_aed6b713381c193c598572ebac0b284cca47bde70fdcc82c8363d16c7137641b79}{utl\+::spi\+::bit\+Order\+::\+M\+S\+B\+\_\+\+First}} =0x80
  43. \}
  44. \item
  45. enum \mbox{\hyperlink{namespaceutl_1_1spi_a89e3e1af5df0b6c37239f7e336969f8a}{utl\+::spi\+::cpol}} \{ \mbox{\hyperlink{namespaceutl_1_1spi_a89e3e1af5df0b6c37239f7e336969f8aa41bc94cbd8eebea13ce0491b2ac11b88}{utl\+::spi\+::cpol\+::\+L\+OW}} =0,
  46. \mbox{\hyperlink{namespaceutl_1_1spi_a89e3e1af5df0b6c37239f7e336969f8aab89de3b4b81c4facfac906edf29aec8c}{utl\+::spi\+::cpol\+::\+H\+I\+GH}}
  47. \}
  48. \item
  49. enum \mbox{\hyperlink{namespaceutl_1_1spi_aa49fe33d495226891cef0a870cba59df}{utl\+::spi\+::cpha}} \{ \mbox{\hyperlink{namespaceutl_1_1spi_aa49fe33d495226891cef0a870cba59dfa41bc94cbd8eebea13ce0491b2ac11b88}{utl\+::spi\+::cpha\+::\+L\+OW}} =0,
  50. \mbox{\hyperlink{namespaceutl_1_1spi_aa49fe33d495226891cef0a870cba59dfab89de3b4b81c4facfac906edf29aec8c}{utl\+::spi\+::cpha\+::\+H\+I\+GH}}
  51. \}
  52. \end{DoxyCompactItemize}
  53. \subsection{Detailed Description}
  54. An Abstract base class interface for the spi bus.
  55. Copyright (C) 2018 Christos Choutouridis
  56. This program is free software\+: you can redistribute it and/or modify it under the terms of the G\+NU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
  57. This program is distributed in the hope that it will be useful, but W\+I\+T\+H\+O\+UT A\+NY W\+A\+R\+R\+A\+N\+TY; without even the implied warranty of M\+E\+R\+C\+H\+A\+N\+T\+A\+B\+I\+L\+I\+TY or F\+I\+T\+N\+E\+SS F\+OR A P\+A\+R\+T\+I\+C\+U\+L\+AR P\+U\+R\+P\+O\+SE. See the G\+NU Lesser General Public License for more details.
  58. You should have received a copy of the G\+NU Lesser General Public License along with this program. If not, see \href{http://www.gnu.org/licenses/}{\tt http\+://www.\+gnu.\+org/licenses/}.