\doxysection{i2c\+\_\+basic.\+ino}
\hypertarget{i2c__basic_8ino_source}{}\label{i2c__basic_8ino_source}\index{examples/i2c\_basic/i2c\_basic.ino@{examples/i2c\_basic/i2c\_basic.ino}}
\mbox{\hyperlink{i2c__basic_8ino}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00001}00001\ \textcolor{comment}{/***************************************************************}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00002}00002\ \textcolor{comment}{\ *\ @file\ \ \ \ I2C\_Basic.ino}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00003}00003\ \textcolor{comment}{\ *\ @author\ \ 7Semi,Jonathan\ Mejorado\ Lopez\ }}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00004}00004\ \textcolor{comment}{\ *\ @brief\ \ \ Minimal\ I2C\ bring-\/up\ for\ 7Semi\ ICM-\/20948\ +}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00005}00005\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ basic\ Accel/Gyro/Temp/Mag\ readout\ (updated\ API).}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00006}00006\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00007}00007\ \textcolor{comment}{\ *\ Features}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00008}00008\ \textcolor{comment}{\ *\ -\/\ I2C\ init\ (UNO\ /\ ESP32)}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00009}00009\ \textcolor{comment}{\ *\ -\/\ beginI2C()\ initialization}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00010}00010\ \textcolor{comment}{\ *\ -\/\ Manual\ sensor\ enable\ (setSensors)}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00011}00011\ \textcolor{comment}{\ *\ -\/\ Read\ Accel\ /\ Gyro\ /\ Temp\ /\ Mag}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00012}00012\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00013}00013\ \textcolor{comment}{\ *\ Notes}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00014}00014\ \textcolor{comment}{\ *\ -\/\ WHO\_AM\_I\ must\ be\ 0xEA}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00015}00015\ \textcolor{comment}{\ *\ -\/\ Sensors\ must\ be\ explicitly\ enabled}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00016}00016\ \textcolor{comment}{\ *\ -\/\ Magnetometer\ requires\ initMag()}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00017}00017\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00018}00018\ \textcolor{comment}{\ *\ Wiring\ (Arduino\ UNO\ I2C)}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00019}00019\ \textcolor{comment}{\ *\ -\/\ SDA\ -\/>\ A4}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00020}00020\ \textcolor{comment}{\ *\ -\/\ SCL\ -\/>\ A5}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00021}00021\ \textcolor{comment}{\ *\ -\/\ VCC\ -\/>\ 3V3\ (or\ 5V\ if\ supported)}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00022}00022\ \textcolor{comment}{\ *\ -\/\ GND\ -\/>\ GND}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00023}00023\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00024}00024\ \textcolor{comment}{\ *\ Wiring\ (ESP32\ default\ I2C)}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00025}00025\ \textcolor{comment}{\ *\ -\/\ SDA\ -\/>\ GPIO21}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00026}00026\ \textcolor{comment}{\ *\ -\/\ SCL\ -\/>\ GPIO22}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00027}00027\ \textcolor{comment}{\ ***************************************************************/}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00028}00028\ \textcolor{preprocessor}{\#include\ <Wire.h>}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00029}00029\ \textcolor{preprocessor}{\#include\ <\mbox{\hyperlink{DevLab__ICM20948_8h}{DevLab\_ICM20948.h}}>}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00030}00030\ }
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00031}00031\ \textcolor{comment}{/*\ ======================\ User\ Config\ =======================\ */}\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00032}00032\ \textcolor{comment}{/**\ @brief\ I2C\ SDA\ pin\ used\ by\ the\ example\ board.\ */}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00033}\mbox{\hyperlink{i2c__basic_8ino_a526d580d324bce60a3e964066fae77e3}{00033}}\ \textcolor{preprocessor}{\#define\ SDA\_PIN\ \ \ 6}\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00034}00034\ \textcolor{comment}{/**\ @brief\ I2C\ SCL\ pin\ used\ by\ the\ example\ board.\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00035}\mbox{\hyperlink{i2c__basic_8ino_a06c967e78bcedcee909a70764f879433}{00035}}\ \textcolor{preprocessor}{\#define\ SCL\_PIN\ \ \ 7}\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00036}00036\ \textcolor{comment}{/**\ @brief\ I2C\ bus\ speed\ in\ hertz.\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00037}\mbox{\hyperlink{i2c__basic_8ino_a8b7500a141450a9df212017430c0df9e}{00037}}\ \textcolor{preprocessor}{\#define\ I2C\_FREQ\ \ 400000UL}\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00038}00038\ \textcolor{comment}{/**\ @brief\ ICM-\/20948\ I2C\ address\ selected\ by\ the\ AD0\ pin.\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00039}\mbox{\hyperlink{i2c__basic_8ino_a8fb98755bd25ab9d5bf8739e15df6eeb}{00039}}\ \textcolor{preprocessor}{\#define\ ICM\_ADDR\ \ 0x69}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00040}00040\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00041}00041\ \textcolor{comment}{/**\ @brief\ Global\ ICM-\/20948\ driver\ instance.\ */}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00042}\mbox{\hyperlink{i2c__basic_8ino_aa8226278adaa3f7fb2ad8b966f7787a1}{00042}}\ \mbox{\hyperlink{classDevLab__ICM20948}{DevLab\_ICM20948}}\ \mbox{\hyperlink{i2c__basic_8ino_aa8226278adaa3f7fb2ad8b966f7787a1}{imu}};}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00043}00043\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00044}00044\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00045}00045\ \textcolor{comment}{\ *\ @brief\ Configure\ Serial,\ I2C,\ sensor\ identity\ check,\ and\ enabled\ sensors.}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00046}00046\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00047}00047\ \textcolor{comment}{\ *\ The\ sketch\ stops\ in\ an\ infinite\ loop\ if\ the\ IMU\ cannot\ be\ initialized\ or}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00048}00048\ \textcolor{comment}{\ *\ the\ WHO\_AM\_I\ register\ does\ not\ match\ the\ expected\ ICM-\/20948\ value.}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00049}00049\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00050}\mbox{\hyperlink{i2c__basic_8ino_a4fc01d736fe50cf5b977f755b675f11d}{00050}}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{i2c__basic_8ino_a4fc01d736fe50cf5b977f755b675f11d}{setup}}()\ \{}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00051}00051\ \ \ Serial.begin(115200);}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00052}00052\ \ \ delay(200);}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00053}00053\ \ \ Serial.println(F(\textcolor{stringliteral}{"{}ICM-\/20948\ —\ I2C\ Basic"{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00054}00054\ \ \ Wire.begin(\mbox{\hyperlink{i2c__basic_8ino_a526d580d324bce60a3e964066fae77e3}{SDA\_PIN}},\ \mbox{\hyperlink{i2c__basic_8ino_a06c967e78bcedcee909a70764f879433}{SCL\_PIN}});}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00055}00055\ \ \ \textcolor{comment}{/*\ Initialize\ IMU.\ */}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00056}00056\ \ \ \textcolor{keywordflow}{if}\ (!\mbox{\hyperlink{i2c__basic_8ino_aa8226278adaa3f7fb2ad8b966f7787a1}{imu}}.\mbox{\hyperlink{classDevLab__ICM20948_a91147b3cd4c45bffc8e024f985be7b21}{beginI2C}}(\mbox{\hyperlink{i2c__basic_8ino_a8fb98755bd25ab9d5bf8739e15df6eeb}{ICM\_ADDR}},\ Wire,\ 400000))\ \{}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00057}00057\ \ \ \ \ Serial.println(F(\textcolor{stringliteral}{"{}ERROR:\ beginI2C()\ failed"{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00058}00058\ \ \ \ \ \textcolor{keywordflow}{while}\ (1)\ delay(200);}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00059}00059\ \ \ \}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00060}00060\ }
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00061}00061\ \ \ \textcolor{comment}{/*\ WHO\_AM\_I\ check.\ */}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00062}00062\ \ \ uint8\_t\ who;}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00063}00063\ \ \ \textcolor{keywordflow}{if}\ (!\mbox{\hyperlink{i2c__basic_8ino_aa8226278adaa3f7fb2ad8b966f7787a1}{imu}}.\mbox{\hyperlink{classDevLab__ICM20948_a8bef7eafb3b67eb736f491d0df453b9e}{readWhoAmI}}(who)\ ||\ who\ !=\ 0xEA)\ \{}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00064}00064\ \ \ \ \ Serial.println(F(\textcolor{stringliteral}{"{}ERROR:\ WHO\_AM\_I\ mismatch"{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00065}00065\ \ \ \ \ \textcolor{keywordflow}{while}\ (1)\ delay(200);}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00066}00066\ \ \ \}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00067}00067\ }
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00068}00068\ \ \ Serial.print(F(\textcolor{stringliteral}{"{}WHO\_AM\_I\ =\ 0x"{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00069}00069\ \ \ Serial.println(who,\ HEX);}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00070}00070\ }
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00071}00071\ \ \ \textcolor{comment}{/*\ Enable\ all\ sensors.\ */}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00072}00072\ \ \ \textcolor{keywordflow}{if}\ (!\mbox{\hyperlink{i2c__basic_8ino_aa8226278adaa3f7fb2ad8b966f7787a1}{imu}}.\mbox{\hyperlink{classDevLab__ICM20948_ae9c088334d6ec706bb08b47ef29bd186}{setSensors}}(\textcolor{keyword}{true},\ \textcolor{keyword}{true},\ \textcolor{keyword}{true}))\ \{}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00073}00073\ \ \ \ \ Serial.println(F(\textcolor{stringliteral}{"{}ERROR:\ setSensors\ failed"{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00074}00074\ \ \ \}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00075}00075\ }
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00076}00076\ \ \ \textcolor{comment}{/*\ Initialize\ magnetometer.\ */}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00077}00077\ \ \ \textcolor{keywordflow}{if}\ (!\mbox{\hyperlink{i2c__basic_8ino_aa8226278adaa3f7fb2ad8b966f7787a1}{imu}}.\mbox{\hyperlink{classDevLab__ICM20948_a7b137192f8eb987cd221808c2c6c3561}{initMag}}())\ \{}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00078}00078\ \ \ \ \ Serial.println(F(\textcolor{stringliteral}{"{}Mag\ init\ failed"{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00079}00079\ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00080}00080\ \ \ \ \ Serial.println(F(\textcolor{stringliteral}{"{}Mag\ initialized"{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00081}00081\ \ \ \}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00082}00082\ }
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00083}00083\ \ \ Serial.println(F(\textcolor{stringliteral}{"{}Ready.\(\backslash\)n"{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00084}00084\ \}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00085}00085\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00086}00086\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00087}00087\ \textcolor{comment}{\ *\ @brief\ Read\ accelerometer,\ gyroscope,\ magnetometer,\ and\ temperature\ data.}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00088}00088\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00089}00089\ \textcolor{comment}{\ *\ Values\ are\ printed\ periodically\ to\ the\ Serial\ monitor\ in\ engineering\ units.}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00090}00090\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00091}\mbox{\hyperlink{i2c__basic_8ino_afe461d27b9c48d5921c00d521181f12f}{00091}}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{i2c__basic_8ino_afe461d27b9c48d5921c00d521181f12f}{loop}}()\ \{}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00092}00092\ \ \ \textcolor{keywordtype}{float}\ ax,\ ay,\ az;}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00093}00093\ \ \ \textcolor{keywordtype}{float}\ gx,\ gy,\ gz;}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00094}00094\ \ \ \textcolor{keywordtype}{float}\ mx,\ my,\ mz;}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00095}00095\ \ \ \textcolor{keywordtype}{float}\ tC;}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00096}00096\ }
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00097}00097\ \ \ \textcolor{comment}{/*\ Read\ accelerometer.\ */}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00098}00098\ \ \ \textcolor{keywordflow}{if}\ (\mbox{\hyperlink{i2c__basic_8ino_aa8226278adaa3f7fb2ad8b966f7787a1}{imu}}.\mbox{\hyperlink{classDevLab__ICM20948_a3b58edd0915cff118ca81daa6944a27b}{readAccel}}(ax,\ ay,\ az))\ \{}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00099}00099\ \ \ \ \ Serial.print(F(\textcolor{stringliteral}{"{}ACC\ [g]:\ "{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00100}00100\ \ \ \ \ Serial.print(ax,\ 3);\ Serial.print(\textcolor{stringliteral}{"{},\ "{}});}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00101}00101\ \ \ \ \ Serial.print(ay,\ 3);\ Serial.print(\textcolor{stringliteral}{"{},\ "{}});}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00102}00102\ \ \ \ \ Serial.println(az,\ 3);}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00103}00103\ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00104}00104\ \ \ \ \ Serial.println(F(\textcolor{stringliteral}{"{}ACC\ read\ failed"{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00105}00105\ \ \ \}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00106}00106\ }
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00107}00107\ \ \ \textcolor{comment}{/*\ Read\ gyroscope.\ */}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00108}00108\ \ \ \textcolor{keywordflow}{if}\ (\mbox{\hyperlink{i2c__basic_8ino_aa8226278adaa3f7fb2ad8b966f7787a1}{imu}}.\mbox{\hyperlink{classDevLab__ICM20948_a006c131f860f1fc81c587b3d8a77522d}{readGyro}}(gx,\ gy,\ gz))\ \{}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00109}00109\ \ \ \ \ Serial.print(F(\textcolor{stringliteral}{"{}GYR\ [dps]:\ "{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00110}00110\ \ \ \ \ Serial.print(gx,\ 2);\ Serial.print(\textcolor{stringliteral}{"{},\ "{}});}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00111}00111\ \ \ \ \ Serial.print(gy,\ 2);\ Serial.print(\textcolor{stringliteral}{"{},\ "{}});}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00112}00112\ \ \ \ \ Serial.println(gz,\ 2);}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00113}00113\ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00114}00114\ \ \ \ \ Serial.println(F(\textcolor{stringliteral}{"{}GYR\ read\ failed"{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00115}00115\ \ \ \}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00116}00116\ }
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00117}00117\ \ \ \textcolor{comment}{/*\ Read\ magnetometer.\ */}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00118}00118\ \ \ \textcolor{keywordflow}{if}\ (\mbox{\hyperlink{i2c__basic_8ino_aa8226278adaa3f7fb2ad8b966f7787a1}{imu}}.\mbox{\hyperlink{classDevLab__ICM20948_a9f9b29867c2b78efef3ef9688f886314}{readMag}}(mx,\ my,\ mz))\ \{}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00119}00119\ \ \ \ \ Serial.print(F(\textcolor{stringliteral}{"{}MAG\ [uT]:\ "{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00120}00120\ \ \ \ \ Serial.print(mx,\ 2);\ Serial.print(\textcolor{stringliteral}{"{},\ "{}});}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00121}00121\ \ \ \ \ Serial.print(my,\ 2);\ Serial.print(\textcolor{stringliteral}{"{},\ "{}});}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00122}00122\ \ \ \ \ Serial.println(mz,\ 2);}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00123}00123\ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00124}00124\ \ \ \ \ Serial.println(F(\textcolor{stringliteral}{"{}MAG\ read\ failed"{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00125}00125\ \ \ \}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00126}00126\ }
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00127}00127\ \ \ \textcolor{comment}{/*\ Read\ temperature.\ */}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00128}00128\ \ \ \textcolor{keywordflow}{if}\ (\mbox{\hyperlink{i2c__basic_8ino_aa8226278adaa3f7fb2ad8b966f7787a1}{imu}}.\mbox{\hyperlink{classDevLab__ICM20948_aa5c2ecd855cebb1934bbbe020128ab5e}{readTemperature}}(tC))\ \{}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00129}00129\ \ \ \ \ Serial.print(F(\textcolor{stringliteral}{"{}TMP\ [C]:\ "{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00130}00130\ \ \ \ \ Serial.println(tC,\ 2);}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00131}00131\ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00132}00132\ \ \ \ \ Serial.println(F(\textcolor{stringliteral}{"{}TMP\ read\ failed"{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00133}00133\ \ \ \}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00134}00134\ }
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00135}00135\ \ \ Serial.println(F(\textcolor{stringliteral}{"{}-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/"{}}));}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00136}00136\ \ \ delay(500);}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00137}00137\ \}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00138}00138\ }
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00139}00139\ \textcolor{comment}{/*\ Note\ on\ magnetometer:}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00140}00140\ \textcolor{comment}{\ *\ -\/\ Uses\ internal\ I2C\ master\ (AK09916\ via\ ICM20948)}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00141}00141\ \textcolor{comment}{\ *\ -\/\ initMag()\ must\ be\ called\ before\ readMag()}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00142}00142\ \textcolor{comment}{\ *\ -\/\ If\ values\ are\ zero:}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00143}00143\ \textcolor{comment}{\ *\ \ \ →\ check\ initMag()}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00144}00144\ \textcolor{comment}{\ *\ \ \ →\ verify\ power\ +\ pull-\/ups}}
\DoxyCodeLine{\Hypertarget{i2c__basic_8ino_source_l00145}00145\ \textcolor{comment}{\ */}}

\end{DoxyCode}
