1
0
mirror of https://github.com/taigrr/arduinolibs synced 2025-01-18 04:33:12 -08:00

Update docs

This commit is contained in:
Rhys Weatherley
2015-03-12 19:03:15 +10:00
parent 083448f195
commit c6206e4216
493 changed files with 35310 additions and 3018 deletions

View File

@@ -3,6 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>ArduinoLibs: SoftI2C.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
@@ -29,7 +30,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.2 -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
@@ -118,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#define i2cDelay() delayMicroseconds(5)</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="classSoftI2C.html#adb6e00ee3f930f1d32010a18feb5f6cc"> 50</a></span>&#160;<a class="code" href="classSoftI2C.html#adb6e00ee3f930f1d32010a18feb5f6cc" title="Constructs a new software I2C master on dataPin and clockPin.">SoftI2C::SoftI2C</a>(uint8_t dataPin, uint8_t clockPin)</div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSoftI2C.html#adb6e00ee3f930f1d32010a18feb5f6cc"> 50</a></span>&#160;<a class="code" href="classSoftI2C.html#adb6e00ee3f930f1d32010a18feb5f6cc">SoftI2C::SoftI2C</a>(uint8_t dataPin, uint8_t clockPin)</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; : _dataPin(dataPin)</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; , _clockPin(clockPin)</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; , started(false)</div>
@@ -133,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; digitalWrite(_dataPin, HIGH);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="classSoftI2C.html#aad488669f28f6a5a4ceaae3de61d38f4"> 65</a></span>&#160;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classSoftI2C.html#aad488669f28f6a5a4ceaae3de61d38f4" title="Returns the maximum number of bytes that can be read or written in a single request by this bus maste...">SoftI2C::maxTransferSize</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSoftI2C.html#aad488669f28f6a5a4ceaae3de61d38f4"> 65</a></span>&#160;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classSoftI2C.html#aad488669f28f6a5a4ceaae3de61d38f4">SoftI2C::maxTransferSize</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> 0xFFFF;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div>
@@ -172,21 +173,21 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define I2C_READ 0x01</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define I2C_READ10 0xF1</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="classSoftI2C.html#aa8a3219f4e6ff52306cc3c219f37d8f9"> 104</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSoftI2C.html#aa8a3219f4e6ff52306cc3c219f37d8f9" title="Starts a write operation by sending a start condition and the I2C control byte.">SoftI2C::startWrite</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> address)</div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classSoftI2C.html#aa8a3219f4e6ff52306cc3c219f37d8f9"> 104</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSoftI2C.html#aa8a3219f4e6ff52306cc3c219f37d8f9">SoftI2C::startWrite</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> address)</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; start();</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; inWrite = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span> (address &lt; 0x80) {</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// 7-bit address.</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73" title="Writes a single byte value on the I2C bus.">write</a>((uint8_t)((address &lt;&lt; 1) | I2C_WRITE));</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73">write</a>((uint8_t)((address &lt;&lt; 1) | I2C_WRITE));</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// 10-bit address.</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73" title="Writes a single byte value on the I2C bus.">write</a>((uint8_t)(((address &gt;&gt; 7) &amp; 0x06)) | I2C_WRITE10);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73" title="Writes a single byte value on the I2C bus.">write</a>((uint8_t)address);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73">write</a>((uint8_t)(((address &gt;&gt; 7) &amp; 0x06)) | I2C_WRITE10);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73">write</a>((uint8_t)address);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;}</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="code" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73"> 118</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73" title="Writes a single byte value on the I2C bus.">SoftI2C::write</a>(uint8_t value)</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73"> 118</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73">SoftI2C::write</a>(uint8_t value)</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; uint8_t mask = 0x80;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">while</span> (mask != 0) {</div>
@@ -197,23 +198,23 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; acked = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="code" href="classSoftI2C.html#aa12ae82813598b2e9ea70463c23c5bf3"> 129</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSoftI2C.html#aa12ae82813598b2e9ea70463c23c5bf3" title="Ends the current write operation.">SoftI2C::endWrite</a>()</div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classSoftI2C.html#aa12ae82813598b2e9ea70463c23c5bf3"> 129</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSoftI2C.html#aa12ae82813598b2e9ea70463c23c5bf3">SoftI2C::endWrite</a>()</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;{</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; stop();</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">return</span> acked;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;}</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="code" href="classSoftI2C.html#aa0dafc067cfa374af75e060dca647ec3"> 135</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSoftI2C.html#aa0dafc067cfa374af75e060dca647ec3" title="Starts a read operation for count bytes by sending the start condition and the I2C control byte...">SoftI2C::startRead</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> address, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count)</div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classSoftI2C.html#aa0dafc067cfa374af75e060dca647ec3"> 135</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSoftI2C.html#aa0dafc067cfa374af75e060dca647ec3">SoftI2C::startRead</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> address, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count)</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;{</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; start();</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; inWrite = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span> (address &lt; 0x80) {</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="comment">// 7-bit address.</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73" title="Writes a single byte value on the I2C bus.">write</a>((uint8_t)((address &lt;&lt; 1) | I2C_READ));</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73">write</a>((uint8_t)((address &lt;&lt; 1) | I2C_READ));</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">// 10-bit address.</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73" title="Writes a single byte value on the I2C bus.">write</a>((uint8_t)(((address &gt;&gt; 7) &amp; 0x06)) | I2C_READ10);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73" title="Writes a single byte value on the I2C bus.">write</a>((uint8_t)address);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73">write</a>((uint8_t)(((address &gt;&gt; 7) &amp; 0x06)) | I2C_READ10);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73">write</a>((uint8_t)address);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span> (!acked) {</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; readCount = 0;</div>
@@ -223,12 +224,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;}</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="code" href="classSoftI2C.html#a849af91018caedbb82e83f02c543305e"> 155</a></span>&#160;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classSoftI2C.html#a849af91018caedbb82e83f02c543305e" title="Returns the number of bytes that are still available for reading.">SoftI2C::available</a>()</div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classSoftI2C.html#a849af91018caedbb82e83f02c543305e"> 155</a></span>&#160;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classSoftI2C.html#a849af91018caedbb82e83f02c543305e">SoftI2C::available</a>()</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;{</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> readCount;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;}</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="code" href="classSoftI2C.html#a330dbba5b726fa161a6b01a9ca49e1bc"> 160</a></span>&#160;uint8_t <a class="code" href="classSoftI2C.html#a330dbba5b726fa161a6b01a9ca49e1bc" title="Reads a single byte from the I2C bus.">SoftI2C::read</a>()</div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSoftI2C.html#a330dbba5b726fa161a6b01a9ca49e1bc"> 160</a></span>&#160;uint8_t <a class="code" href="classSoftI2C.html#a330dbba5b726fa161a6b01a9ca49e1bc">SoftI2C::read</a>()</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; uint8_t value = 0;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">for</span> (uint8_t bit = 0; bit &lt; 8; ++bit)</div>
@@ -271,12 +272,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; i2cDelay();</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> bit;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;}</div>
<div class="ttc" id="classSoftI2C_html_aa0dafc067cfa374af75e060dca647ec3"><div class="ttname"><a href="classSoftI2C.html#aa0dafc067cfa374af75e060dca647ec3">SoftI2C::startRead</a></div><div class="ttdeci">bool startRead(unsigned int address, unsigned int count)</div><div class="ttdoc">Starts a read operation for count bytes by sending the start condition and the I2C control byte...</div><div class="ttdef"><b>Definition:</b> <a href="SoftI2C_8cpp_source.html#l00135">SoftI2C.cpp:135</a></div></div>
<div class="ttc" id="classSoftI2C_html_aa12ae82813598b2e9ea70463c23c5bf3"><div class="ttname"><a href="classSoftI2C.html#aa12ae82813598b2e9ea70463c23c5bf3">SoftI2C::endWrite</a></div><div class="ttdeci">bool endWrite()</div><div class="ttdoc">Ends the current write operation. </div><div class="ttdef"><b>Definition:</b> <a href="SoftI2C_8cpp_source.html#l00129">SoftI2C.cpp:129</a></div></div>
<div class="ttc" id="classSoftI2C_html_adb6e00ee3f930f1d32010a18feb5f6cc"><div class="ttname"><a href="classSoftI2C.html#adb6e00ee3f930f1d32010a18feb5f6cc">SoftI2C::SoftI2C</a></div><div class="ttdeci">SoftI2C(uint8_t dataPin, uint8_t clockPin)</div><div class="ttdoc">Constructs a new software I2C master on dataPin and clockPin. </div><div class="ttdef"><b>Definition:</b> <a href="SoftI2C_8cpp_source.html#l00050">SoftI2C.cpp:50</a></div></div>
<div class="ttc" id="classSoftI2C_html_a849af91018caedbb82e83f02c543305e"><div class="ttname"><a href="classSoftI2C.html#a849af91018caedbb82e83f02c543305e">SoftI2C::available</a></div><div class="ttdeci">unsigned int available()</div><div class="ttdoc">Returns the number of bytes that are still available for reading. </div><div class="ttdef"><b>Definition:</b> <a href="SoftI2C_8cpp_source.html#l00155">SoftI2C.cpp:155</a></div></div>
<div class="ttc" id="classSoftI2C_html_a330dbba5b726fa161a6b01a9ca49e1bc"><div class="ttname"><a href="classSoftI2C.html#a330dbba5b726fa161a6b01a9ca49e1bc">SoftI2C::read</a></div><div class="ttdeci">uint8_t read()</div><div class="ttdoc">Reads a single byte from the I2C bus. </div><div class="ttdef"><b>Definition:</b> <a href="SoftI2C_8cpp_source.html#l00160">SoftI2C.cpp:160</a></div></div>
<div class="ttc" id="classSoftI2C_html_ab46f0b6363c9cfe6fb3ab907956d5d73"><div class="ttname"><a href="classSoftI2C.html#ab46f0b6363c9cfe6fb3ab907956d5d73">SoftI2C::write</a></div><div class="ttdeci">void write(uint8_t value)</div><div class="ttdoc">Writes a single byte value on the I2C bus. </div><div class="ttdef"><b>Definition:</b> <a href="SoftI2C_8cpp_source.html#l00118">SoftI2C.cpp:118</a></div></div>
<div class="ttc" id="classSoftI2C_html_aad488669f28f6a5a4ceaae3de61d38f4"><div class="ttname"><a href="classSoftI2C.html#aad488669f28f6a5a4ceaae3de61d38f4">SoftI2C::maxTransferSize</a></div><div class="ttdeci">unsigned int maxTransferSize() const </div><div class="ttdoc">Returns the maximum number of bytes that can be read or written in a single request by this bus maste...</div><div class="ttdef"><b>Definition:</b> <a href="SoftI2C_8cpp_source.html#l00065">SoftI2C.cpp:65</a></div></div>
<div class="ttc" id="classSoftI2C_html_aa8a3219f4e6ff52306cc3c219f37d8f9"><div class="ttname"><a href="classSoftI2C.html#aa8a3219f4e6ff52306cc3c219f37d8f9">SoftI2C::startWrite</a></div><div class="ttdeci">void startWrite(unsigned int address)</div><div class="ttdoc">Starts a write operation by sending a start condition and the I2C control byte. </div><div class="ttdef"><b>Definition:</b> <a href="SoftI2C_8cpp_source.html#l00104">SoftI2C.cpp:104</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Sep 29 2013 09:30:46 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Mar 12 2015 19:02:05 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1.2
</a> 1.8.6
</small></address>
</body>
</html>