\doxysection{Dev\+Lab\+\_\+\+ICM20948 Class Reference}
\hypertarget{classDevLab__ICM20948}{}\label{classDevLab__ICM20948}\index{DevLab\_ICM20948@{DevLab\_ICM20948}}


{\ttfamily \#include $<$Dev\+Lab\+\_\+\+ICM20948.\+h$>$}

\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classDevLab__ICM20948_ad71f3c89c3edb515b8cfb3f4b3073e95}{Dev\+Lab\+\_\+\+ICM20948}} ()
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a91147b3cd4c45bffc8e024f985be7b21}{begin\+I2C}} (uint8\+\_\+t address=0x69, Two\+Wire \&i2c\+Port=Wire, uint32\+\_\+t i2c\+Speed=400000)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a4386f310503153f3e28935cbdda75b18}{begin\+SPI}} (uint8\+\_\+t cs\+Pin, SPIClass \&spi\+Port=SPI, uint32\+\_\+t spi\+Speed=1000000)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a8bef7eafb3b67eb736f491d0df453b9e}{read\+Who\+AmI}} (uint8\+\_\+t \&who\+AmI)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_aaa26fcbfea0e67d45cb1c3ae39654c55}{select\+Bank}} (uint8\+\_\+t bank)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a0d6774b76298645ee45ec0e9065a8891}{soft\+Reset}} ()
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a4210e842050486637a5967b2a9ef7b57}{sleep}} (bool en)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a31460c48549b1d3081e253706f8b15e6}{apply\+Basic\+Defaults}} ()
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a3b58edd0915cff118ca81daa6944a27b}{read\+Accel}} (float \&x, float \&y, float \&z)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a006c131f860f1fc81c587b3d8a77522d}{read\+Gyro}} (float \&x, float \&y, float \&z)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_aa5c2ecd855cebb1934bbbe020128ab5e}{read\+Temperature}} (float \&temperature)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a9f9b29867c2b78efef3ef9688f886314}{read\+Mag}} (float \&x, float \&y, float \&z)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a7b137192f8eb987cd221808c2c6c3561}{init\+Mag}} ()
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a0882a30454b0716953f5f375613d24b3}{set\+Mag\+Op\+Mode}} (\mbox{\hyperlink{DevLab__ICM20948_8h_ad14b8d7e0be37ca0ccaf45ccc31c18bb}{ICM20948\+\_\+\+Op\+\_\+\+Mode}} op\+Mode)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a6c9c09f8b2ab39f5de7f48c6c743ffc4}{set\+Low\+Power}} (bool enable)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a9832c13228e84e8ef74a631bfe1fdcd7}{get\+Low\+Power}} (bool \&enable)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a18de038f48173c77483f4be1c04204d6}{set\+Clock}} (\mbox{\hyperlink{DevLab__ICM20948_8h_a4f34ad1572aec922143a5ffa9420879a}{ICM20948\+\_\+\+Clock\+\_\+\+Source}} clock)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_ac4585d35fd7444eee47ea7accd162b6d}{get\+Clock}} (uint8\+\_\+t \&clock)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a70bbcf97fd1c211e2bea203a5039b1bb}{set\+Gyro\+Sample\+Rate}} (float sample\+Rate)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a721c6c8151230452abfc6c36814f63a7}{get\+Gyro\+Sample\+Rate}} (float \&sample\+Rate)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a16cc9db132bb7a2b706275c9f5a03773}{set\+Gyro\+Div\+Rate}} (uint8\+\_\+t divisor)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a0bea2c662c285120253851c80289e077}{set\+DLPF}} (\mbox{\hyperlink{DevLab__ICM20948_8h_a9f4d08566440cf9c577724b075c59aa1}{ICM20948\+\_\+\+Gyro\+\_\+\+DLPF}} dlpf, bool bypass)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_ab5ef83d7268ee07da27e9cce74c94e46}{get\+DLPF}} (uint8\+\_\+t \&dlpf, bool \&bypass)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a6a06dbd14558e50d40595de82502d632}{set\+Gyro\+Scale}} (\mbox{\hyperlink{DevLab__ICM20948_8h_a409a608f5c864bb503bf1a65b164de7d}{ICM20948\+\_\+\+Gyro\+\_\+\+Full\+Scale}} full\+Scale)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a7ae5665d5e835f8024df82f43bae46e7}{set\+Gyro\+Averaging}} (\mbox{\hyperlink{DevLab__ICM20948_8h_a6b88764d5f92bd1ed524fdc1f8b87088}{ICM20948\+\_\+\+Gyro\+\_\+\+Average}} avg)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a5e21409c747b1345884dd0d05720f37f}{get\+Gyro\+Scale}} (uint8\+\_\+t \&full\+Scale)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a9d7602ece2c3908e7bbb2acd45dff156}{self\+Test\+Gyro}} (bool x, bool y, bool z)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_aca0cb8da36b8e9128299b9aeb5bb60ec}{set\+Accel\+Div\+Rate}} (uint16\+\_\+t divisor)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_afe657b6e9d21f02dad2599ea04feefe2}{set\+Accel\+Sample\+Rate}} (uint16\+\_\+t sample\+Rate)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a9f2da1c80e24d06ae0a0561eb850d8d9}{get\+Accel\+Sample\+Rate}} (float \&sample\+Rate)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_adfbd409c7723007d208c82550098a649}{self\+Test\+Accel}} (bool x, bool y, bool z)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a1a2aa0019d5e1c6ba8ce4a3c1d9fcb43}{set\+Accel\+Scale}} (\mbox{\hyperlink{DevLab__ICM20948_8h_a7d56bdd11158e2d05da5c9317fadee05}{ICM20948\+\_\+\+Accel\+\_\+\+Full\+Scale}} full\+Scale)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_ace42a35300e82402626ce89eb8958e5f}{get\+Accel\+Scale}} (uint8\+\_\+t \&full\+Scale)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_ac52d80aad738b90aa0f05e9d6404bb85}{set\+Accel\+DLPF}} (uint8\+\_\+t dlpf, bool bypass)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a95dae0d8f84175c0175e65b9981d86f9}{get\+Accel\+DLPF}} (uint8\+\_\+t \&dlpf, bool \&bypass)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a619f82390347cc173d1604d4d711b537}{set\+Accel\+Averaging}} (\mbox{\hyperlink{DevLab__ICM20948_8h_a792c56c75cabcab23c273bd9a48aefa9}{ICM20948\+\_\+\+Accel\+\_\+\+Average}} avg)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_ae356f6810b038f90e706bd288bb79d19}{get\+Accel\+Averaging}} (uint8\+\_\+t \&avg)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_ae9c088334d6ec706bb08b47ef29bd186}{set\+Sensors}} (bool accel\+\_\+on, bool gyro\+\_\+on, bool temp\+\_\+on)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a8b3768ede281b8aa65900b1db8a7a7c7}{get\+Sensors}} (bool \&accel\+\_\+on, bool \&gyro\+\_\+on, bool \&temp\+\_\+on)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a631e6298058a3c54f1c02bae5cf8db54}{set\+Gyro\+Offset}} (uint16\+\_\+t offsetX, uint16\+\_\+t offsetY, uint16\+\_\+t offsetZ)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a3d407a299b73a9d6da88f724bcca0a36}{get\+Gyro\+Offset}} (int16\+\_\+t \&offsetX, int16\+\_\+t \&offsetY, int16\+\_\+t \&offsetZ)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a7c150c665140086d7937fa4b2f39cd45}{set\+Accel\+Offset}} (int16\+\_\+t offsetX, int16\+\_\+t offsetY, int16\+\_\+t offsetZ)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_ae4beff71dc469940c9ba561d57f04ec7}{get\+Accel\+Offset}} (int16\+\_\+t \&offsetX, int16\+\_\+t \&offsetY, int16\+\_\+t \&offsetZ)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_ab011f71e9466a0e1e8245638f81b0f43}{int\+Init}} (const \mbox{\hyperlink{structICM20948__IntPinConfig}{ICM20948\+\_\+\+Int\+Pin\+Config}} \&cfg)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a3c5db22058479806072167f2c15319c7}{int\+Enable\+Config}} (const \mbox{\hyperlink{structICM20948__IntEnableConfig}{ICM20948\+\_\+\+Int\+Enable\+Config}} \&cfg)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a61f65c00baf13e2cd69eee7cb6688720}{check\+Int\+Status}} (\mbox{\hyperlink{structICM20948__IntStatus}{ICM20948\+\_\+\+Int\+Status}} \&status)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_aab027c72832d1c7ec722187e6a64796a}{aux\+Master\+Enable}} (uint8\+\_\+t clk\+Freq)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a1079d6d89e4bda1f496cce90a820e102}{aux\+Write\+Byte}} (uint8\+\_\+t slave\+Addr, uint8\+\_\+t reg, uint8\+\_\+t data)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a1b8cce13fe757b1b3a61f8437766d7eb}{aux\+Read\+Byte}} (uint8\+\_\+t slave\+Addr, uint8\+\_\+t reg, uint8\+\_\+t \&data)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_ac2a1cdaf078cac71e14e0629925a7808}{aux\+Write\+Command}} (uint8\+\_\+t slave\+Addr, uint8\+\_\+t cmd)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_ab8336307b4096237d701d989d1f5e619}{aux\+Config\+Slave}} (uint8\+\_\+t slave\+Addr, uint8\+\_\+t reg, uint8\+\_\+t num\+Bytes)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a8f47c9f63642c35e5b5656e720667566}{aux\+Read\+Sensor\+Data}} (uint8\+\_\+t \texorpdfstring{$\ast$}{*}buf, uint8\+\_\+t len)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a57d37173d6d5c54ab4c7027dfdd3a78f}{aux\+Read\+Response}} (uint8\+\_\+t slave\+Addr, uint8\+\_\+t \&data)
\item 
bool \mbox{\hyperlink{classDevLab__ICM20948_a357d1315ecc5a649ac4ce6b31cb47e7a}{aux\+Read12bit}} (uint16\+\_\+t \&raw)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Class
\begin{DoxyItemize}
\item Manages ICM-\/20948 over I2C (SPI path disabled in this cut)
\item Caches scale factors for LSB-\/\texorpdfstring{$>$}{>}physical conversions 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8h_source_l00172}{172}} of file \mbox{\hyperlink{DevLab__ICM20948_8h_source}{Dev\+Lab\+\_\+\+ICM20948.\+h}}.



\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classDevLab__ICM20948_ad71f3c89c3edb515b8cfb3f4b3073e95}\label{classDevLab__ICM20948_ad71f3c89c3edb515b8cfb3f4b3073e95} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{DevLab\_ICM20948()}{DevLab\_ICM20948()}}
{\footnotesize\ttfamily Dev\+Lab\+\_\+\+ICM20948\+::\+Dev\+Lab\+\_\+\+ICM20948 (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}


\begin{DoxyItemize}
\item Construct with default I2C address; call begin() to attach bus 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00004}{4}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.



\doxysubsection{Member Function Documentation}
\Hypertarget{classDevLab__ICM20948_a31460c48549b1d3081e253706f8b15e6}\label{classDevLab__ICM20948_a31460c48549b1d3081e253706f8b15e6} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!applyBasicDefaults@{applyBasicDefaults}}
\index{applyBasicDefaults@{applyBasicDefaults}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{applyBasicDefaults()}{applyBasicDefaults()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::apply\+Basic\+Defaults (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

apply\+Basic\+Defaults


\begin{DoxyItemize}
\item Apply basic sensor configuration
\item Configure power, filters, ranges, and sampling rates
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Configuration successful
\item false → Any register write failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00181}{181}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a31460c48549b1d3081e253706f8b15e6_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a31460c48549b1d3081e253706f8b15e6_icgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_ab8336307b4096237d701d989d1f5e619}\label{classDevLab__ICM20948_ab8336307b4096237d701d989d1f5e619} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!auxConfigSlave@{auxConfigSlave}}
\index{auxConfigSlave@{auxConfigSlave}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{auxConfigSlave()}{auxConfigSlave()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::aux\+Config\+Slave (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{slave\+Addr,  }\item[{uint8\+\_\+t}]{reg,  }\item[{uint8\+\_\+t}]{num\+Bytes }\end{DoxyParamCaption})}

aux\+Config\+Slave


\begin{DoxyItemize}
\item Configure SLV0 for automatic periodic reads from an auxiliary I2C slave
\item The ICM20948 master will read num\+Bytes starting at reg on every ODR cycle
\item Data is deposited into EXT\+\_\+\+SLV\+\_\+\+SENS\+\_\+\+DATA\+\_\+00 and subsequent registers
\item Call once during initialization; read results with aux\+Read\+Sensor\+Data
\end{DoxyItemize}

Parameters\+:
\begin{DoxyItemize}
\item slave\+Addr\+: 7-\/bit I2C address of the auxiliary slave
\item reg\+: starting register address to read from on the slave
\item num\+Bytes\+: number of bytes to read per cycle (1–15)
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → SLV0 configured successfully
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01374}{1374}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_ab8336307b4096237d701d989d1f5e619_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_aab027c72832d1c7ec722187e6a64796a}\label{classDevLab__ICM20948_aab027c72832d1c7ec722187e6a64796a} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!auxMasterEnable@{auxMasterEnable}}
\index{auxMasterEnable@{auxMasterEnable}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{auxMasterEnable()}{auxMasterEnable()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::aux\+Master\+Enable (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{clk\+Freq }\end{DoxyParamCaption})}

aux\+Master\+Enable


\begin{DoxyItemize}
\item Enable the ICM20948 internal I2C master for auxiliary bus
\item Clears BYPASS\+\_\+\+EN so the aux bus is controlled by the ICM
\item Sets I2\+C\+\_\+\+MST\+\_\+\+EN in USER\+\_\+\+CTRL
\item Configures auxiliary master clock frequency
\end{DoxyItemize}

Parameters\+:
\begin{DoxyItemize}
\item clk\+Freq\+: clock divider value (e.\+g. 0x07 ≈ 345.\+6 k\+Hz, 0x0D ≈ 400 k\+Hz)
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Master enabled successfully
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01260}{1260}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_aab027c72832d1c7ec722187e6a64796a_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a357d1315ecc5a649ac4ce6b31cb47e7a}\label{classDevLab__ICM20948_a357d1315ecc5a649ac4ce6b31cb47e7a} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!auxRead12bit@{auxRead12bit}}
\index{auxRead12bit@{auxRead12bit}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{auxRead12bit()}{auxRead12bit()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::aux\+Read12bit (\begin{DoxyParamCaption}\item[{uint16\+\_\+t \&}]{raw }\end{DoxyParamCaption})}

aux\+Read12bit


\begin{DoxyItemize}
\item Read a 12-\/bit value previously configured via aux\+Config\+Slave (SLV0, num\+Bytes = 2)
\item Assumes little-\/endian packing\+: first byte = LSB, second byte = MSB
\item Result is masked to 12 bits (0-\/4095)
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Read failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01424}{1424}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a357d1315ecc5a649ac4ce6b31cb47e7a_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a1b8cce13fe757b1b3a61f8437766d7eb}\label{classDevLab__ICM20948_a1b8cce13fe757b1b3a61f8437766d7eb} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!auxReadByte@{auxReadByte}}
\index{auxReadByte@{auxReadByte}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{auxReadByte()}{auxReadByte()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::aux\+Read\+Byte (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{slave\+Addr,  }\item[{uint8\+\_\+t}]{reg,  }\item[{uint8\+\_\+t \&}]{data }\end{DoxyParamCaption})}

aux\+Read\+Byte


\begin{DoxyItemize}
\item Read a single byte from a register of an auxiliary I2C slave via SLV4
\item Generates a combined write-\/then-\/read transaction (reg byte + repeated START)
\item Suitable for slaves that follow standard I2C register-\/read protocol
\end{DoxyItemize}

Note\+: slaves that need separate write/read transactions (e.\+g. command-\/response firmware) should use aux\+Write\+Command + aux\+Read\+Response instead.

Parameters\+:
\begin{DoxyItemize}
\item slave\+Addr\+: 7-\/bit I2C address of the auxiliary slave
\item reg\+: register address to read from
\item data\+: output byte received from slave
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Timeout or NACK 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01312}{1312}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a1b8cce13fe757b1b3a61f8437766d7eb_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a57d37173d6d5c54ab4c7027dfdd3a78f}\label{classDevLab__ICM20948_a57d37173d6d5c54ab4c7027dfdd3a78f} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!auxReadResponse@{auxReadResponse}}
\index{auxReadResponse@{auxReadResponse}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{auxReadResponse()}{auxReadResponse()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::aux\+Read\+Response (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{slave\+Addr,  }\item[{uint8\+\_\+t \&}]{data }\end{DoxyParamCaption})}

aux\+Read\+Response


\begin{DoxyItemize}
\item Read a single response byte from an auxiliary I2C slave via SLV4
\item Generates a pure read transaction\+: \mbox{[}START, addr+R, 1 byte, STOP\mbox{]}
\item No register byte is sent (REG\+\_\+\+DIS); slave must already be ready to transmit
\item Use after aux\+Write\+Command to complete a command-\/response exchange with slaves that require separate write and read transactions (e.\+g. PY32\+F0 firmware slaves)
\end{DoxyItemize}

Parameters\+:
\begin{DoxyItemize}
\item slave\+Addr\+: 7-\/bit I2C address of the auxiliary slave
\item data\+: output byte received from slave
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Response received successfully
\item false → Timeout or NACK 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01397}{1397}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a57d37173d6d5c54ab4c7027dfdd3a78f_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a8f47c9f63642c35e5b5656e720667566}\label{classDevLab__ICM20948_a8f47c9f63642c35e5b5656e720667566} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!auxReadSensorData@{auxReadSensorData}}
\index{auxReadSensorData@{auxReadSensorData}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{auxReadSensorData()}{auxReadSensorData()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::aux\+Read\+Sensor\+Data (\begin{DoxyParamCaption}\item[{uint8\+\_\+t \texorpdfstring{$\ast$}{*}}]{buf,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}

aux\+Read\+Sensor\+Data


\begin{DoxyItemize}
\item Read bytes from EXT\+\_\+\+SLV\+\_\+\+SENS\+\_\+\+DATA registers (BANK 0)
\item Returns data collected by the ICM20948 master from SLV0–\+SLV3 on the last cycle
\item Must call aux\+Config\+Slave first to set up the automatic read
\end{DoxyItemize}

Parameters\+:
\begin{DoxyItemize}
\item buf\+: output buffer to store the received bytes
\item len\+: number of bytes to read (must match num\+Bytes configured in aux\+Config\+Slave)
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Bus error 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01391}{1391}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a8f47c9f63642c35e5b5656e720667566_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a8f47c9f63642c35e5b5656e720667566_icgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a1079d6d89e4bda1f496cce90a820e102}\label{classDevLab__ICM20948_a1079d6d89e4bda1f496cce90a820e102} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!auxWriteByte@{auxWriteByte}}
\index{auxWriteByte@{auxWriteByte}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{auxWriteByte()}{auxWriteByte()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::aux\+Write\+Byte (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{slave\+Addr,  }\item[{uint8\+\_\+t}]{reg,  }\item[{uint8\+\_\+t}]{data }\end{DoxyParamCaption})}

aux\+Write\+Byte


\begin{DoxyItemize}
\item Write a single byte to a register of an auxiliary I2C slave via SLV4
\item Uses one-\/shot SLV4 transaction\+: polls SLV4\+\_\+\+DONE, checks for NACK
\item Suitable for configuration writes (not continuous streaming)
\end{DoxyItemize}

Parameters\+:
\begin{DoxyItemize}
\item slave\+Addr\+: 7-\/bit I2C address of the auxiliary slave
\item reg\+: target register address on the slave
\item data\+: byte to write
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Write acknowledged by slave
\item false → Timeout or NACK 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01281}{1281}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a1079d6d89e4bda1f496cce90a820e102_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_ac2a1cdaf078cac71e14e0629925a7808}\label{classDevLab__ICM20948_ac2a1cdaf078cac71e14e0629925a7808} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!auxWriteCommand@{auxWriteCommand}}
\index{auxWriteCommand@{auxWriteCommand}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{auxWriteCommand()}{auxWriteCommand()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::aux\+Write\+Command (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{slave\+Addr,  }\item[{uint8\+\_\+t}]{cmd }\end{DoxyParamCaption})}

aux\+Write\+Command


\begin{DoxyItemize}
\item Send a single command byte to an auxiliary I2C slave via SLV4
\item Uses REG\+\_\+\+DIS\+: generates \mbox{[}START, addr+W, cmd\+\_\+byte, STOP\mbox{]} with no register prefix
\item Designed for slaves that use a command-\/response protocol (no register addressing)
\end{DoxyItemize}

Parameters\+:
\begin{DoxyItemize}
\item slave\+Addr\+: 7-\/bit I2C address of the auxiliary slave
\item cmd\+: command byte to send
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Command acknowledged by slave
\item false → Timeout or NACK 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01346}{1346}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_ac2a1cdaf078cac71e14e0629925a7808_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a91147b3cd4c45bffc8e024f985be7b21}\label{classDevLab__ICM20948_a91147b3cd4c45bffc8e024f985be7b21} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!beginI2C@{beginI2C}}
\index{beginI2C@{beginI2C}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{beginI2C()}{beginI2C()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::begin\+I2C (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{address = {\ttfamily 0x69},  }\item[{Two\+Wire \&}]{i2c\+Port = {\ttfamily Wire},  }\item[{uint32\+\_\+t}]{i2c\+Speed = {\ttfamily 400000} }\end{DoxyParamCaption})}

begin\+I2C


\begin{DoxyItemize}
\item Initialize ICM20948 using I2C interface
\item Sets up communication layer (Interface + Bus\+IO)
\item Verifies device identity (WHO\+\_\+\+AM\+\_\+I)
\item Configures basic power and clock settings
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Device initialized successfully
\item false → Communication or configuration failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00006}{6}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a91147b3cd4c45bffc8e024f985be7b21_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a4386f310503153f3e28935cbdda75b18}\label{classDevLab__ICM20948_a4386f310503153f3e28935cbdda75b18} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!beginSPI@{beginSPI}}
\index{beginSPI@{beginSPI}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{beginSPI()}{beginSPI()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::begin\+SPI (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{cs\+Pin,  }\item[{SPIClass \&}]{spi\+Port = {\ttfamily SPI},  }\item[{uint32\+\_\+t}]{spi\+Speed = {\ttfamily 1000000} }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00060}{60}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a4386f310503153f3e28935cbdda75b18_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a61f65c00baf13e2cd69eee7cb6688720}\label{classDevLab__ICM20948_a61f65c00baf13e2cd69eee7cb6688720} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!checkIntStatus@{checkIntStatus}}
\index{checkIntStatus@{checkIntStatus}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{checkIntStatus()}{checkIntStatus()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::check\+Int\+Status (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structICM20948__IntStatus}{ICM20948\+\_\+\+Int\+Status}} \&}]{status }\end{DoxyParamCaption})}

check\+Int\+Status


\begin{DoxyItemize}
\item Read and parse all four interrupt status registers in a single burst read
\item Covers INT\+\_\+\+STATUS (0x19), INT\+\_\+\+STATUS\+\_\+1 (0x1A), INT\+\_\+\+STATUS\+\_\+2 (0x1B), INT\+\_\+\+STATUS\+\_\+3 (0x1C) from BANK 0
\item Reading clears the interrupt flags when clear\+Mode = 0 in \doxylink{structICM20948__IntPinConfig}{ICM20948\+\_\+\+Int\+Pin\+Config}
\item Typically called inside the INT pin ISR or polled in the main loop
\end{DoxyItemize}

Parameters\+:
\begin{DoxyItemize}
\item status\+: \doxylink{structICM20948__IntStatus}{ICM20948\+\_\+\+Int\+Status} struct populated with the current interrupt flags
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Status read successfully
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01231}{1231}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a61f65c00baf13e2cd69eee7cb6688720_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_ae356f6810b038f90e706bd288bb79d19}\label{classDevLab__ICM20948_ae356f6810b038f90e706bd288bb79d19} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!getAccelAveraging@{getAccelAveraging}}
\index{getAccelAveraging@{getAccelAveraging}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{getAccelAveraging()}{getAccelAveraging()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::get\+Accel\+Averaging (\begin{DoxyParamCaption}\item[{uint8\+\_\+t \&}]{avg }\end{DoxyParamCaption})}

get\+Accel\+Averaging


\begin{DoxyItemize}
\item Read accelerometer averaging / decimation setting (DEC3)
\end{DoxyItemize}

Flow\+:
\begin{DoxyItemize}
\item Validate bus pointer
\item Select USER BANK 2
\item Read DEC3 bits \mbox{[}1\+:0\mbox{]}
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00988}{988}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_ae356f6810b038f90e706bd288bb79d19_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a95dae0d8f84175c0175e65b9981d86f9}\label{classDevLab__ICM20948_a95dae0d8f84175c0175e65b9981d86f9} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!getAccelDLPF@{getAccelDLPF}}
\index{getAccelDLPF@{getAccelDLPF}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{getAccelDLPF()}{getAccelDLPF()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::get\+Accel\+DLPF (\begin{DoxyParamCaption}\item[{uint8\+\_\+t \&}]{dlpf,  }\item[{bool \&}]{bypass }\end{DoxyParamCaption})}

get\+Accel\+DLPF


\begin{DoxyItemize}
\item Read accelerometer DLPF configuration
\item Returns filter setting and bypass state
\end{DoxyItemize}

Flow\+:
\begin{DoxyItemize}
\item Validate bus pointer
\item Select USER BANK 2
\item Read ACCEL\+\_\+\+CONFIG register
\item Extract bypass and DLPF bits
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00926}{926}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a95dae0d8f84175c0175e65b9981d86f9_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_ae4beff71dc469940c9ba561d57f04ec7}\label{classDevLab__ICM20948_ae4beff71dc469940c9ba561d57f04ec7} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!getAccelOffset@{getAccelOffset}}
\index{getAccelOffset@{getAccelOffset}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{getAccelOffset()}{getAccelOffset()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::get\+Accel\+Offset (\begin{DoxyParamCaption}\item[{int16\+\_\+t \&}]{offsetX,  }\item[{int16\+\_\+t \&}]{offsetY,  }\item[{int16\+\_\+t \&}]{offsetZ }\end{DoxyParamCaption})}

get\+Accel\+Offset


\begin{DoxyItemize}
\item Read accelerometer offset values for X, Y, Z axes
\item Reads offset registers from USER BANK 1
\end{DoxyItemize}

Flow\+:
\begin{DoxyItemize}
\item Validate bus pointer
\item Select USER BANK 1
\item Read offset registers
\item Convert to signed values
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01151}{1151}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_ae4beff71dc469940c9ba561d57f04ec7_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a9f2da1c80e24d06ae0a0561eb850d8d9}\label{classDevLab__ICM20948_a9f2da1c80e24d06ae0a0561eb850d8d9} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!getAccelSampleRate@{getAccelSampleRate}}
\index{getAccelSampleRate@{getAccelSampleRate}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{getAccelSampleRate()}{getAccelSampleRate()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::get\+Accel\+Sample\+Rate (\begin{DoxyParamCaption}\item[{float \&}]{sample\+Rate }\end{DoxyParamCaption})}

get\+Accel\+Sample\+Rate


\begin{DoxyItemize}
\item Get accelerometer output data rate (ODR)
\item Computes value from divider registers
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00796}{796}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a9f2da1c80e24d06ae0a0561eb850d8d9_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_ace42a35300e82402626ce89eb8958e5f}\label{classDevLab__ICM20948_ace42a35300e82402626ce89eb8958e5f} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!getAccelScale@{getAccelScale}}
\index{getAccelScale@{getAccelScale}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{getAccelScale()}{getAccelScale()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::get\+Accel\+Scale (\begin{DoxyParamCaption}\item[{uint8\+\_\+t \&}]{full\+Scale }\end{DoxyParamCaption})}

get\+Accel\+Scale


\begin{DoxyItemize}
\item Get current accelerometer full-\/scale range (FS\+\_\+\+SEL)
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00878}{878}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_ace42a35300e82402626ce89eb8958e5f_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_ac4585d35fd7444eee47ea7accd162b6d}\label{classDevLab__ICM20948_ac4585d35fd7444eee47ea7accd162b6d} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!getClock@{getClock}}
\index{getClock@{getClock}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{getClock()}{getClock()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::get\+Clock (\begin{DoxyParamCaption}\item[{uint8\+\_\+t \&}]{clock }\end{DoxyParamCaption})}

get\+Clock


\begin{DoxyItemize}
\item Read current clock source (CLKSEL \mbox{[}2\+:0\mbox{]})
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00534}{534}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_ac4585d35fd7444eee47ea7accd162b6d_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_ab5ef83d7268ee07da27e9cce74c94e46}\label{classDevLab__ICM20948_ab5ef83d7268ee07da27e9cce74c94e46} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!getDLPF@{getDLPF}}
\index{getDLPF@{getDLPF}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{getDLPF()}{getDLPF()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::get\+DLPF (\begin{DoxyParamCaption}\item[{uint8\+\_\+t \&}]{dlpf,  }\item[{bool \&}]{bypass }\end{DoxyParamCaption})}

get\+DLPF


\begin{DoxyItemize}
\item Read gyroscope DLPF configuration
\item Returns filter setting and bypass state
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00619}{619}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_ab5ef83d7268ee07da27e9cce74c94e46_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a3d407a299b73a9d6da88f724bcca0a36}\label{classDevLab__ICM20948_a3d407a299b73a9d6da88f724bcca0a36} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!getGyroOffset@{getGyroOffset}}
\index{getGyroOffset@{getGyroOffset}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{getGyroOffset()}{getGyroOffset()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::get\+Gyro\+Offset (\begin{DoxyParamCaption}\item[{int16\+\_\+t \&}]{offsetX,  }\item[{int16\+\_\+t \&}]{offsetY,  }\item[{int16\+\_\+t \&}]{offsetZ }\end{DoxyParamCaption})}

get\+Gyro\+Offset


\begin{DoxyItemize}
\item Read gyroscope offset values for X, Y, Z axes
\item Reads offset registers from USER BANK 2
\end{DoxyItemize}

Flow\+:
\begin{DoxyItemize}
\item Validate bus pointer
\item Select USER BANK 2
\item Read offset registers
\item Convert to signed values
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01099}{1099}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a3d407a299b73a9d6da88f724bcca0a36_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a721c6c8151230452abfc6c36814f63a7}\label{classDevLab__ICM20948_a721c6c8151230452abfc6c36814f63a7} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!getGyroSampleRate@{getGyroSampleRate}}
\index{getGyroSampleRate@{getGyroSampleRate}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{getGyroSampleRate()}{getGyroSampleRate()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::get\+Gyro\+Sample\+Rate (\begin{DoxyParamCaption}\item[{float \&}]{sample\+Rate }\end{DoxyParamCaption})}

get\+Gyro\+Sample\+Rate


\begin{DoxyItemize}
\item Get current gyroscope sample rate
\item Computes value from divider register
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00571}{571}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a721c6c8151230452abfc6c36814f63a7_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a5e21409c747b1345884dd0d05720f37f}\label{classDevLab__ICM20948_a5e21409c747b1345884dd0d05720f37f} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!getGyroScale@{getGyroScale}}
\index{getGyroScale@{getGyroScale}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{getGyroScale()}{getGyroScale()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::get\+Gyro\+Scale (\begin{DoxyParamCaption}\item[{uint8\+\_\+t \&}]{full\+Scale }\end{DoxyParamCaption})}

get\+Gyro\+Scale


\begin{DoxyItemize}
\item Get current gyroscope full-\/scale range (FS\+\_\+\+SEL
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00665}{665}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a5e21409c747b1345884dd0d05720f37f_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a9832c13228e84e8ef74a631bfe1fdcd7}\label{classDevLab__ICM20948_a9832c13228e84e8ef74a631bfe1fdcd7} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!getLowPower@{getLowPower}}
\index{getLowPower@{getLowPower}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{getLowPower()}{getLowPower()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::get\+Low\+Power (\begin{DoxyParamCaption}\item[{bool \&}]{enable }\end{DoxyParamCaption})}

get\+Low\+Power


\begin{DoxyItemize}
\item Read low power mode status
\item Returns state of LP\+\_\+\+EN bit
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00502}{502}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a9832c13228e84e8ef74a631bfe1fdcd7_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a8b3768ede281b8aa65900b1db8a7a7c7}\label{classDevLab__ICM20948_a8b3768ede281b8aa65900b1db8a7a7c7} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!getSensors@{getSensors}}
\index{getSensors@{getSensors}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{getSensors()}{getSensors()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::get\+Sensors (\begin{DoxyParamCaption}\item[{bool \&}]{accel\+\_\+on,  }\item[{bool \&}]{gyro\+\_\+on,  }\item[{bool \&}]{temp\+\_\+on }\end{DoxyParamCaption})}

get\+Sensors


\begin{DoxyItemize}
\item Read accel, gyro, and temperature enable state
\end{DoxyItemize}

Flow\+:
\begin{DoxyItemize}
\item Validate bus pointer
\item Select USER BANK 0
\item Read PWR\+\_\+\+MGMT\+\_\+2 register
\item Read TEMP\+\_\+\+DIS bit
\item Decode enable states
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01039}{1039}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a8b3768ede281b8aa65900b1db8a7a7c7_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a7b137192f8eb987cd221808c2c6c3561}\label{classDevLab__ICM20948_a7b137192f8eb987cd221808c2c6c3561} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!initMag@{initMag}}
\index{initMag@{initMag}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{initMag()}{initMag()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::init\+Mag (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

init\+Mag


\begin{DoxyItemize}
\item Initialize AK09916 magnetometer using internal I2C master
\item Verifies WHO\+\_\+\+AM\+\_\+I and enables continuous mode
\item Configures SLV0 for automatic data read
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Initialization successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00334}{334}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a7b137192f8eb987cd221808c2c6c3561_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a3c5db22058479806072167f2c15319c7}\label{classDevLab__ICM20948_a3c5db22058479806072167f2c15319c7} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!intEnableConfig@{intEnableConfig}}
\index{intEnableConfig@{intEnableConfig}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{intEnableConfig()}{intEnableConfig()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::int\+Enable\+Config (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structICM20948__IntEnableConfig}{ICM20948\+\_\+\+Int\+Enable\+Config}} \&}]{cfg }\end{DoxyParamCaption})}

int\+Enable\+Config


\begin{DoxyItemize}
\item Enable or disable individual interrupt sources routed to the INT pin
\item Writes INT\+\_\+\+ENABLE (0x10), INT\+\_\+\+ENABLE\+\_\+1 (0x11), INT\+\_\+\+ENABLE\+\_\+2 (0x12), and INT\+\_\+\+ENABLE\+\_\+3 (0x13) in BANK 0
\item Must call \doxylink{classDevLab__ICM20948_ab011f71e9466a0e1e8245638f81b0f43}{int\+Init()} first to configure the pin electrical behavior
\end{DoxyItemize}

Parameters\+:
\begin{DoxyItemize}
\item cfg\+: \doxylink{structICM20948__IntEnableConfig}{ICM20948\+\_\+\+Int\+Enable\+Config} struct with the desired interrupt sources enabled
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → All four registers written successfully
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01200}{1200}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a3c5db22058479806072167f2c15319c7_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_ab011f71e9466a0e1e8245638f81b0f43}\label{classDevLab__ICM20948_ab011f71e9466a0e1e8245638f81b0f43} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!intInit@{intInit}}
\index{intInit@{intInit}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{intInit()}{intInit()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::int\+Init (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structICM20948__IntPinConfig}{ICM20948\+\_\+\+Int\+Pin\+Config}} \&}]{cfg }\end{DoxyParamCaption})}

int\+Init


\begin{DoxyItemize}
\item Configure the physical behavior of the INT pin (INT\+\_\+\+PIN\+\_\+\+CFG register, BANK 0)
\item Sets active level, drive mode (push-\/pull / open-\/drain), latch vs pulse mode, clear condition, FSYNC level, FSYNC interrupt enable, and I2C bypass
\end{DoxyItemize}

Parameters\+:
\begin{DoxyItemize}
\item cfg\+: \doxylink{structICM20948__IntPinConfig}{ICM20948\+\_\+\+Int\+Pin\+Config} struct with the desired pin settings
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Configuration written successfully
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01176}{1176}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_ab011f71e9466a0e1e8245638f81b0f43_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a3b58edd0915cff118ca81daa6944a27b}\label{classDevLab__ICM20948_a3b58edd0915cff118ca81daa6944a27b} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!readAccel@{readAccel}}
\index{readAccel@{readAccel}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{readAccel()}{readAccel()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::read\+Accel (\begin{DoxyParamCaption}\item[{float \&}]{x,  }\item[{float \&}]{y,  }\item[{float \&}]{z }\end{DoxyParamCaption})}

read\+Accel


\begin{DoxyItemize}
\item Read accelerometer data (X, Y, Z)
\item Convert raw values to g using LSB scale
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Read failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00238}{238}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a3b58edd0915cff118ca81daa6944a27b_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a006c131f860f1fc81c587b3d8a77522d}\label{classDevLab__ICM20948_a006c131f860f1fc81c587b3d8a77522d} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!readGyro@{readGyro}}
\index{readGyro@{readGyro}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{readGyro()}{readGyro()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::read\+Gyro (\begin{DoxyParamCaption}\item[{float \&}]{x,  }\item[{float \&}]{y,  }\item[{float \&}]{z }\end{DoxyParamCaption})}

read\+Gyro


\begin{DoxyItemize}
\item Read gyroscope data (X, Y, Z)
\item Convert raw values to dps using LSB scale
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Read failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00258}{258}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a006c131f860f1fc81c587b3d8a77522d_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a9f9b29867c2b78efef3ef9688f886314}\label{classDevLab__ICM20948_a9f9b29867c2b78efef3ef9688f886314} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!readMag@{readMag}}
\index{readMag@{readMag}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{readMag()}{readMag()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::read\+Mag (\begin{DoxyParamCaption}\item[{float \&}]{x,  }\item[{float \&}]{y,  }\item[{float \&}]{z }\end{DoxyParamCaption})}

read\+Mag


\begin{DoxyItemize}
\item Read magnetometer data via internal I2C master
\item Data comes from EXT\+\_\+\+SLV\+\_\+\+SENS\+\_\+\+DATA registers
\item Convert raw values to µT
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Read failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00310}{310}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a9f9b29867c2b78efef3ef9688f886314_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_aa5c2ecd855cebb1934bbbe020128ab5e}\label{classDevLab__ICM20948_aa5c2ecd855cebb1934bbbe020128ab5e} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!readTemperature@{readTemperature}}
\index{readTemperature@{readTemperature}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{readTemperature()}{readTemperature()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::read\+Temperature (\begin{DoxyParamCaption}\item[{float \&}]{temperature }\end{DoxyParamCaption})}

read\+Temperature


\begin{DoxyItemize}
\item Read temperature sensor
\item Convert raw values to °C
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Read failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00278}{278}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_aa5c2ecd855cebb1934bbbe020128ab5e_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a8bef7eafb3b67eb736f491d0df453b9e}\label{classDevLab__ICM20948_a8bef7eafb3b67eb736f491d0df453b9e} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!readWhoAmI@{readWhoAmI}}
\index{readWhoAmI@{readWhoAmI}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{readWhoAmI()}{readWhoAmI()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::read\+Who\+AmI (\begin{DoxyParamCaption}\item[{uint8\+\_\+t \&}]{who\+AmI }\end{DoxyParamCaption})}

read\+Who\+AmI


\begin{DoxyItemize}
\item Read WHO\+\_\+\+AM\+\_\+I register (device ID)
\item Used during initialization to verify ICM20948
\item Expected value\+: 0x\+EA
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Read successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00118}{118}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a8bef7eafb3b67eb736f491d0df453b9e_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a8bef7eafb3b67eb736f491d0df453b9e_icgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_aaa26fcbfea0e67d45cb1c3ae39654c55}\label{classDevLab__ICM20948_aaa26fcbfea0e67d45cb1c3ae39654c55} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!selectBank@{selectBank}}
\index{selectBank@{selectBank}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{selectBank()}{selectBank()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::select\+Bank (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{bank }\end{DoxyParamCaption})}

select\+Bank


\begin{DoxyItemize}
\item Select USER BANK (0–3)
\item Used to access different register groups inside ICM20948
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Bank switch successful
\item false → Write failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00132}{132}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_aaa26fcbfea0e67d45cb1c3ae39654c55_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_adfbd409c7723007d208c82550098a649}\label{classDevLab__ICM20948_adfbd409c7723007d208c82550098a649} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!selfTestAccel@{selfTestAccel}}
\index{selfTestAccel@{selfTestAccel}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{selfTestAccel()}{selfTestAccel()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::self\+Test\+Accel (\begin{DoxyParamCaption}\item[{bool}]{x,  }\item[{bool}]{y,  }\item[{bool}]{z }\end{DoxyParamCaption})}

self\+Test\+Accel


\begin{DoxyItemize}
\item Enable or disable accelerometer self-\/test per axis
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Operation successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00826}{826}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_adfbd409c7723007d208c82550098a649_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a9d7602ece2c3908e7bbb2acd45dff156}\label{classDevLab__ICM20948_a9d7602ece2c3908e7bbb2acd45dff156} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!selfTestGyro@{selfTestGyro}}
\index{selfTestGyro@{selfTestGyro}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{selfTestGyro()}{selfTestGyro()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::self\+Test\+Gyro (\begin{DoxyParamCaption}\item[{bool}]{x,  }\item[{bool}]{y,  }\item[{bool}]{z }\end{DoxyParamCaption})}

self\+Test\+Gyro


\begin{DoxyItemize}
\item Enable or disable gyroscope self-\/test per axis
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Operation successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00683}{683}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a9d7602ece2c3908e7bbb2acd45dff156_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a619f82390347cc173d1604d4d711b537}\label{classDevLab__ICM20948_a619f82390347cc173d1604d4d711b537} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setAccelAveraging@{setAccelAveraging}}
\index{setAccelAveraging@{setAccelAveraging}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setAccelAveraging()}{setAccelAveraging()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+Accel\+Averaging (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{DevLab__ICM20948_8h_a792c56c75cabcab23c273bd9a48aefa9}{ICM20948\+\_\+\+Accel\+\_\+\+Average}}}]{avg }\end{DoxyParamCaption})}

set\+Accel\+Averaging


\begin{DoxyItemize}
\item Configure accelerometer averaging / decimation (DEC3)
\item Controls internal averaging of accel samples
\end{DoxyItemize}

Flow\+:
\begin{DoxyItemize}
\item Validate bus pointer
\item Select USER BANK 2
\item Write DEC3 bits \mbox{[}1\+:0\mbox{]}
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Operation successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00952}{952}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a619f82390347cc173d1604d4d711b537_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_aca0cb8da36b8e9128299b9aeb5bb60ec}\label{classDevLab__ICM20948_aca0cb8da36b8e9128299b9aeb5bb60ec} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setAccelDivRate@{setAccelDivRate}}
\index{setAccelDivRate@{setAccelDivRate}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setAccelDivRate()}{setAccelDivRate()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+Accel\+Div\+Rate (\begin{DoxyParamCaption}\item[{uint16\+\_\+t}]{divisor }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00748}{748}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_aca0cb8da36b8e9128299b9aeb5bb60ec_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_ac52d80aad738b90aa0f05e9d6404bb85}\label{classDevLab__ICM20948_ac52d80aad738b90aa0f05e9d6404bb85} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setAccelDLPF@{setAccelDLPF}}
\index{setAccelDLPF@{setAccelDLPF}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setAccelDLPF()}{setAccelDLPF()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+Accel\+DLPF (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{dlpf,  }\item[{bool}]{bypass }\end{DoxyParamCaption})}

set\+Accel\+DLPF


\begin{DoxyItemize}
\item Configure accelerometer digital low-\/pass filter (DLPF)
\item Option to bypass filter (full bandwidth)
\end{DoxyItemize}

Flow\+:
\begin{DoxyItemize}
\item Validate bus pointer
\item Select USER BANK 2
\item Set or clear bypass bit
\item Configure DLPF bits if not bypassed
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Operation successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00897}{897}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_ac52d80aad738b90aa0f05e9d6404bb85_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a7c150c665140086d7937fa4b2f39cd45}\label{classDevLab__ICM20948_a7c150c665140086d7937fa4b2f39cd45} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setAccelOffset@{setAccelOffset}}
\index{setAccelOffset@{setAccelOffset}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setAccelOffset()}{setAccelOffset()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+Accel\+Offset (\begin{DoxyParamCaption}\item[{int16\+\_\+t}]{offsetX,  }\item[{int16\+\_\+t}]{offsetY,  }\item[{int16\+\_\+t}]{offsetZ }\end{DoxyParamCaption})}

set\+Accel\+Offset


\begin{DoxyItemize}
\item Set accelerometer offset values for X, Y, Z axes
\item Writes offset registers in USER BANK 1
\end{DoxyItemize}

Flow\+:
\begin{DoxyItemize}
\item Validate bus pointer
\item Select USER BANK 1
\item Pack offsets into byte array
\item Write to offset registers
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Operation successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01124}{1124}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a7c150c665140086d7937fa4b2f39cd45_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_afe657b6e9d21f02dad2599ea04feefe2}\label{classDevLab__ICM20948_afe657b6e9d21f02dad2599ea04feefe2} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setAccelSampleRate@{setAccelSampleRate}}
\index{setAccelSampleRate@{setAccelSampleRate}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setAccelSampleRate()}{setAccelSampleRate()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+Accel\+Sample\+Rate (\begin{DoxyParamCaption}\item[{uint16\+\_\+t}]{sample\+Rate }\end{DoxyParamCaption})}

set\+Accel\+Sample\+Rate


\begin{DoxyItemize}
\item Set accelerometer output data rate (ODR)
\item Uses 1125 Hz base rate with 12-\/bit divider
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Operation successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00709}{709}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_afe657b6e9d21f02dad2599ea04feefe2_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a1a2aa0019d5e1c6ba8ce4a3c1d9fcb43}\label{classDevLab__ICM20948_a1a2aa0019d5e1c6ba8ce4a3c1d9fcb43} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setAccelScale@{setAccelScale}}
\index{setAccelScale@{setAccelScale}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setAccelScale()}{setAccelScale()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+Accel\+Scale (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{DevLab__ICM20948_8h_a7d56bdd11158e2d05da5c9317fadee05}{ICM20948\+\_\+\+Accel\+\_\+\+Full\+Scale}}}]{full\+Scale }\end{DoxyParamCaption})}

set\+Accel\+Scale


\begin{DoxyItemize}
\item Set accelerometer full-\/scale range (FS\+\_\+\+SEL)
\item Controls measurement range (±2g, ±4g, ±8g, ±16g)
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Operation successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00857}{857}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a1a2aa0019d5e1c6ba8ce4a3c1d9fcb43_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a18de038f48173c77483f4be1c04204d6}\label{classDevLab__ICM20948_a18de038f48173c77483f4be1c04204d6} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setClock@{setClock}}
\index{setClock@{setClock}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setClock()}{setClock()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+Clock (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{DevLab__ICM20948_8h_a4f34ad1572aec922143a5ffa9420879a}{ICM20948\+\_\+\+Clock\+\_\+\+Source}}}]{clock }\end{DoxyParamCaption})}

set\+Clock


\begin{DoxyItemize}
\item Set clock source (CLKSEL \mbox{[}2\+:0\mbox{]})
\item Selects internal clock for sensor operation
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Operation successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00520}{520}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a18de038f48173c77483f4be1c04204d6_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a0bea2c662c285120253851c80289e077}\label{classDevLab__ICM20948_a0bea2c662c285120253851c80289e077} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setDLPF@{setDLPF}}
\index{setDLPF@{setDLPF}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setDLPF()}{setDLPF()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+DLPF (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{DevLab__ICM20948_8h_a9f4d08566440cf9c577724b075c59aa1}{ICM20948\+\_\+\+Gyro\+\_\+\+DLPF}}}]{dlpf,  }\item[{bool}]{bypass }\end{DoxyParamCaption})}

set\+DLPF


\begin{DoxyItemize}
\item Configure gyroscope digital low-\/pass filter (DLPF)
\item Option to bypass filter (full bandwidth)
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Operation successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00593}{593}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a0bea2c662c285120253851c80289e077_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a7ae5665d5e835f8024df82f43bae46e7}\label{classDevLab__ICM20948_a7ae5665d5e835f8024df82f43bae46e7} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setGyroAveraging@{setGyroAveraging}}
\index{setGyroAveraging@{setGyroAveraging}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setGyroAveraging()}{setGyroAveraging()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+Gyro\+Averaging (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{DevLab__ICM20948_8h_a6b88764d5f92bd1ed524fdc1f8b87088}{ICM20948\+\_\+\+Gyro\+\_\+\+Average}}}]{avg }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00970}{970}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a7ae5665d5e835f8024df82f43bae46e7_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a16cc9db132bb7a2b706275c9f5a03773}\label{classDevLab__ICM20948_a16cc9db132bb7a2b706275c9f5a03773} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setGyroDivRate@{setGyroDivRate}}
\index{setGyroDivRate@{setGyroDivRate}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setGyroDivRate()}{setGyroDivRate()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+Gyro\+Div\+Rate (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{divisor }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00780}{780}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a16cc9db132bb7a2b706275c9f5a03773_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a631e6298058a3c54f1c02bae5cf8db54}\label{classDevLab__ICM20948_a631e6298058a3c54f1c02bae5cf8db54} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setGyroOffset@{setGyroOffset}}
\index{setGyroOffset@{setGyroOffset}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setGyroOffset()}{setGyroOffset()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+Gyro\+Offset (\begin{DoxyParamCaption}\item[{uint16\+\_\+t}]{offsetX,  }\item[{uint16\+\_\+t}]{offsetY,  }\item[{uint16\+\_\+t}]{offsetZ }\end{DoxyParamCaption})}

set\+Gyro\+Offset


\begin{DoxyItemize}
\item Set gyroscope offset values for X, Y, Z axes
\item Writes offset registers in USER BANK 2
\end{DoxyItemize}

Flow\+:
\begin{DoxyItemize}
\item Validate bus pointer
\item Select USER BANK 2
\item Pack offsets into byte array
\item Write to offset registers
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Operation successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01072}{1072}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a631e6298058a3c54f1c02bae5cf8db54_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a70bbcf97fd1c211e2bea203a5039b1bb}\label{classDevLab__ICM20948_a70bbcf97fd1c211e2bea203a5039b1bb} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setGyroSampleRate@{setGyroSampleRate}}
\index{setGyroSampleRate@{setGyroSampleRate}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setGyroSampleRate()}{setGyroSampleRate()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+Gyro\+Sample\+Rate (\begin{DoxyParamCaption}\item[{float}]{sample\+Rate }\end{DoxyParamCaption})}

set\+Gyro\+Sample\+Rate


\begin{DoxyItemize}
\item Set gyroscope sample rate
\item Uses internal divider (SRD) based on 1100 Hz base rate
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Operation successful
\item false → Invalid input or write failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00550}{550}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a70bbcf97fd1c211e2bea203a5039b1bb_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a6a06dbd14558e50d40595de82502d632}\label{classDevLab__ICM20948_a6a06dbd14558e50d40595de82502d632} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setGyroScale@{setGyroScale}}
\index{setGyroScale@{setGyroScale}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setGyroScale()}{setGyroScale()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+Gyro\+Scale (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{DevLab__ICM20948_8h_a409a608f5c864bb503bf1a65b164de7d}{ICM20948\+\_\+\+Gyro\+\_\+\+Full\+Scale}}}]{full\+Scale }\end{DoxyParamCaption})}

set\+Gyro\+Scale


\begin{DoxyItemize}
\item Set gyroscope full-\/scale range (FS\+\_\+\+SEL)
\item Controls sensitivity (dps range)
\end{DoxyItemize}

Flow\+:
\begin{DoxyItemize}
\item Validate bus pointer
\item Select USER BANK 2
\item Write FS\+\_\+\+SEL bits \mbox{[}2\+:1\mbox{]}
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Operation successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00644}{644}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a6a06dbd14558e50d40595de82502d632_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a6c9c09f8b2ab39f5de7f48c6c743ffc4}\label{classDevLab__ICM20948_a6c9c09f8b2ab39f5de7f48c6c743ffc4} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setLowPower@{setLowPower}}
\index{setLowPower@{setLowPower}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setLowPower()}{setLowPower()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+Low\+Power (\begin{DoxyParamCaption}\item[{bool}]{enable }\end{DoxyParamCaption})}

set\+Low\+Power


\begin{DoxyItemize}
\item Enable or disable low power mode
\item Controls LP\+\_\+\+EN bit in PWR\+\_\+\+MGMT\+\_\+1
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Operation successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00488}{488}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a6c9c09f8b2ab39f5de7f48c6c743ffc4_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a0882a30454b0716953f5f375613d24b3}\label{classDevLab__ICM20948_a0882a30454b0716953f5f375613d24b3} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setMagOpMode@{setMagOpMode}}
\index{setMagOpMode@{setMagOpMode}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setMagOpMode()}{setMagOpMode()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+Mag\+Op\+Mode (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{DevLab__ICM20948_8h_ad14b8d7e0be37ca0ccaf45ccc31c18bb}{ICM20948\+\_\+\+Op\+\_\+\+Mode}}}]{op\+Mode }\end{DoxyParamCaption})}

set\+Mag\+Op\+Mode


\begin{DoxyItemize}
\item Set magnetometer operation mode
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Mode set successfully
\item false → Write failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00410}{410}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

\Hypertarget{classDevLab__ICM20948_ae9c088334d6ec706bb08b47ef29bd186}\label{classDevLab__ICM20948_ae9c088334d6ec706bb08b47ef29bd186} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!setSensors@{setSensors}}
\index{setSensors@{setSensors}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{setSensors()}{setSensors()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::set\+Sensors (\begin{DoxyParamCaption}\item[{bool}]{accel\+\_\+on,  }\item[{bool}]{gyro\+\_\+on,  }\item[{bool}]{temp\+\_\+on }\end{DoxyParamCaption})}

set\+Sensors


\begin{DoxyItemize}
\item Enable or disable accel, gyro, and temperature sensor
\item Controls power gating via PWR\+\_\+\+MGMT\+\_\+2 and TEMP\+\_\+\+DIS
\end{DoxyItemize}

Flow\+:
\begin{DoxyItemize}
\item Validate bus pointer
\item Select USER BANK 0
\item Build PWR\+\_\+\+MGMT\+\_\+2 mask
\item Configure temperature enable/disable
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Operation successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l01006}{1006}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_ae9c088334d6ec706bb08b47ef29bd186_cgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a4210e842050486637a5967b2a9ef7b57}\label{classDevLab__ICM20948_a4210e842050486637a5967b2a9ef7b57} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!sleep@{sleep}}
\index{sleep@{sleep}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{sleep()}{sleep()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::sleep (\begin{DoxyParamCaption}\item[{bool}]{en }\end{DoxyParamCaption})}

sleep


\begin{DoxyItemize}
\item Enable or disable sleep mode
\item Maintains clock source (CLKSEL = 1)
\end{DoxyItemize}

Flow\+:
\begin{DoxyItemize}
\item Select USER BANK 0
\item Set or clear SLEEP bit
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Operation successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00164}{164}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a4210e842050486637a5967b2a9ef7b57_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a4210e842050486637a5967b2a9ef7b57_icgraph}
\end{center}
\end{figure}
\Hypertarget{classDevLab__ICM20948_a0d6774b76298645ee45ec0e9065a8891}\label{classDevLab__ICM20948_a0d6774b76298645ee45ec0e9065a8891} 
\index{DevLab\_ICM20948@{DevLab\_ICM20948}!softReset@{softReset}}
\index{softReset@{softReset}!DevLab\_ICM20948@{DevLab\_ICM20948}}
\doxysubsubsection{\texorpdfstring{softReset()}{softReset()}}
{\footnotesize\ttfamily bool Dev\+Lab\+\_\+\+ICM20948\+::soft\+Reset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

soft\+Reset


\begin{DoxyItemize}
\item Perform software reset of ICM20948
\item Resets all internal registers to default state
\end{DoxyItemize}

Flow\+:
\begin{DoxyItemize}
\item Select USER BANK 0
\item Set DEVICE\+\_\+\+RESET bit
\item Wait for device to restart
\end{DoxyItemize}

Returns\+:
\begin{DoxyItemize}
\item true → Reset successful
\item false → Operation failed 
\end{DoxyItemize}

Definition at line \mbox{\hyperlink{DevLab__ICM20948_8cpp_source_l00144}{144}} of file \mbox{\hyperlink{DevLab__ICM20948_8cpp_source}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a0d6774b76298645ee45ec0e9065a8891_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classDevLab__ICM20948_a0d6774b76298645ee45ec0e9065a8891_icgraph}
\end{center}
\end{figure}


The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
src/\mbox{\hyperlink{DevLab__ICM20948_8h}{Dev\+Lab\+\_\+\+ICM20948.\+h}}\item 
src/\mbox{\hyperlink{DevLab__ICM20948_8cpp}{Dev\+Lab\+\_\+\+ICM20948.\+cpp}}\end{DoxyCompactItemize}
