summaryrefslogtreecommitdiffstats
path: root/watch__i2c_8h_source.html
blob: 37099bcd2167b1548996590f35bf696b2bcc55cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Sensor Watch: watch-library/shared/watch/watch_i2c.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">Sensor Watch<span id="projectnumber">&#160;0.0.0</span>
   </div>
   <div id="projectbrief">A board replacement for the classic Casio F-91W wristwatch, powered by a Microchip SAM L22 microcontroller.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_f1a087a6659d970f5756e21fc1ac4961.html">watch-library</a></li><li class="navelem"><a class="el" href="dir_3351a3556ab4b770be21f3a77a6d7b80.html">shared</a></li><li class="navelem"><a class="el" href="dir_280ec1f3fe74f12cdd5c78898ed1ca3c.html">watch</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle"><div class="title">watch_i2c.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment"> * MIT License</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment"> *</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment"> * Copyright (c) 2020 Joey Castillo</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment"> *</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment"> * of this software and associated documentation files (the &quot;Software&quot;), to deal</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment"> * in the Software without restriction, including without limitation the rights</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment"> * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="comment"> * copies of the Software, and to permit persons to whom the Software is</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="comment"> *</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="comment"> * The above copyright notice and this permission notice shall be included in all</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="comment"> * copies or substantial portions of the Software.</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="comment"> *</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span><span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span><span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="comment"> * SOFTWARE.</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="comment"> */</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#ifndef _WATCH_I2C_H_INCLUDED</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#define _WATCH_I2C_H_INCLUDED</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#include &quot;<a class="code" href="watch_8h.html">watch.h</a>&quot;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="group__i2c.html#gab9f25517d9dc3c32a707266dfd413e5b">   38</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group__i2c.html#gab9f25517d9dc3c32a707266dfd413e5b">watch_enable_i2c</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="group__i2c.html#ga2189bdff3dcb40f451d0aa988ea99760">   42</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group__i2c.html#ga2189bdff3dcb40f451d0aa988ea99760">watch_disable_i2c</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="group__i2c.html#ga8b44030f78c30dd4026b349fc0c8cf08">   49</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group__i2c.html#ga8b44030f78c30dd4026b349fc0c8cf08">watch_i2c_send</a>(int16_t addr, uint8_t *buf, uint16_t length);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="group__i2c.html#ga426971387b87286c8decca7342c06b4b">   56</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group__i2c.html#ga426971387b87286c8decca7342c06b4b">watch_i2c_receive</a>(int16_t addr, uint8_t *buf, uint16_t length);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="group__i2c.html#gaf0a4c78215cbd85ab557fc6c786eb6ad">   63</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group__i2c.html#gaf0a4c78215cbd85ab557fc6c786eb6ad">watch_i2c_write8</a>(int16_t addr, uint8_t reg, uint8_t data);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="group__i2c.html#gac5644140ddda98198f9d5deabbeaf781">   70</a></span>uint8_t <a class="code hl_function" href="group__i2c.html#gac5644140ddda98198f9d5deabbeaf781">watch_i2c_read8</a>(int16_t addr, uint8_t reg);</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="group__i2c.html#gaed749d3ca5e6e3aedcf1aefed3d7663e">   81</a></span>uint16_t <a class="code hl_function" href="group__i2c.html#gaed749d3ca5e6e3aedcf1aefed3d7663e">watch_i2c_read16</a>(int16_t addr, uint8_t reg);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span> </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="group__i2c.html#ga6732b5655fdada88d083e4b4d05d1ca8">   92</a></span>uint32_t <a class="code hl_function" href="group__i2c.html#ga6732b5655fdada88d083e4b4d05d1ca8">watch_i2c_read24</a>(int16_t addr, uint8_t reg);</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span> </div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="group__i2c.html#ga3d1c750d1b228b11333d10fc9647d651">  104</a></span>uint32_t <a class="code hl_function" href="group__i2c.html#ga3d1c750d1b228b11333d10fc9647d651">watch_i2c_read32</a>(int16_t addr, uint8_t reg);</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="agroup__i2c_html_ga2189bdff3dcb40f451d0aa988ea99760"><div class="ttname"><a href="group__i2c.html#ga2189bdff3dcb40f451d0aa988ea99760">watch_disable_i2c</a></div><div class="ttdeci">void watch_disable_i2c(void)</div><div class="ttdoc">Disables the I2C peripheral.</div></div>
<div class="ttc" id="agroup__i2c_html_ga3d1c750d1b228b11333d10fc9647d651"><div class="ttname"><a href="group__i2c.html#ga3d1c750d1b228b11333d10fc9647d651">watch_i2c_read32</a></div><div class="ttdeci">uint32_t watch_i2c_read32(int16_t addr, uint8_t reg)</div><div class="ttdoc">Reads an unsigned little-endian int from a register in an I2C device.</div></div>
<div class="ttc" id="agroup__i2c_html_ga426971387b87286c8decca7342c06b4b"><div class="ttname"><a href="group__i2c.html#ga426971387b87286c8decca7342c06b4b">watch_i2c_receive</a></div><div class="ttdeci">void watch_i2c_receive(int16_t addr, uint8_t *buf, uint16_t length)</div><div class="ttdoc">Receives a series of values from a device on the I2C bus.</div></div>
<div class="ttc" id="agroup__i2c_html_ga6732b5655fdada88d083e4b4d05d1ca8"><div class="ttname"><a href="group__i2c.html#ga6732b5655fdada88d083e4b4d05d1ca8">watch_i2c_read24</a></div><div class="ttdeci">uint32_t watch_i2c_read24(int16_t addr, uint8_t reg)</div><div class="ttdoc">Reads three bytes as an unsigned little-endian int from a register in an I2C device.</div></div>
<div class="ttc" id="agroup__i2c_html_ga8b44030f78c30dd4026b349fc0c8cf08"><div class="ttname"><a href="group__i2c.html#ga8b44030f78c30dd4026b349fc0c8cf08">watch_i2c_send</a></div><div class="ttdeci">void watch_i2c_send(int16_t addr, uint8_t *buf, uint16_t length)</div><div class="ttdoc">Sends a series of values to a device on the I2C bus.</div></div>
<div class="ttc" id="agroup__i2c_html_gab9f25517d9dc3c32a707266dfd413e5b"><div class="ttname"><a href="group__i2c.html#gab9f25517d9dc3c32a707266dfd413e5b">watch_enable_i2c</a></div><div class="ttdeci">void watch_enable_i2c(void)</div><div class="ttdoc">Enables the I2C peripheral. Call this before attempting to interface with I2C devices.</div></div>
<div class="ttc" id="agroup__i2c_html_gac5644140ddda98198f9d5deabbeaf781"><div class="ttname"><a href="group__i2c.html#gac5644140ddda98198f9d5deabbeaf781">watch_i2c_read8</a></div><div class="ttdeci">uint8_t watch_i2c_read8(int16_t addr, uint8_t reg)</div><div class="ttdoc">Reads a byte from a register in an I2C device.</div></div>
<div class="ttc" id="agroup__i2c_html_gaed749d3ca5e6e3aedcf1aefed3d7663e"><div class="ttname"><a href="group__i2c.html#gaed749d3ca5e6e3aedcf1aefed3d7663e">watch_i2c_read16</a></div><div class="ttdeci">uint16_t watch_i2c_read16(int16_t addr, uint8_t reg)</div><div class="ttdoc">Reads an unsigned little-endian word from a register in an I2C device.</div></div>
<div class="ttc" id="agroup__i2c_html_gaf0a4c78215cbd85ab557fc6c786eb6ad"><div class="ttname"><a href="group__i2c.html#gaf0a4c78215cbd85ab557fc6c786eb6ad">watch_i2c_write8</a></div><div class="ttdeci">void watch_i2c_write8(int16_t addr, uint8_t reg, uint8_t data)</div><div class="ttdoc">Writes a byte to a register in an I2C device.</div></div>
<div class="ttc" id="awatch_8h_html"><div class="ttname"><a href="watch_8h.html">watch.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>