-
Notifications
You must be signed in to change notification settings - Fork 0
/
Sd2Card_8h_source.html
302 lines (300 loc) · 56.7 KB
/
Sd2Card_8h_source.html
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
<!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=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Prusa3d Marlin fork: Sd2Card.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 style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Prusa3d Marlin fork
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'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:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- 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 class="header">
<div class="headertitle">
<div class="title">Sd2Card.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="Sd2Card_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* Arduino Sd2Card Library</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2009 by William Greiman</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This file is part of the Arduino Sd2Card Library</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * This Library is free software: you can redistribute it and/or modify</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * it under the terms of the GNU General Public License as published by</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * the Free Software Foundation, either version 3 of the License, or</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * (at your option) any later version.</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> *</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * This Library is distributed in the hope that it will be useful,</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * GNU General Public License for more details.</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * You should have received a copy of the GNU General Public License</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * along with the Arduino Sd2Card Library. If not, see</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * <http://www.gnu.org/licenses/>.</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "Marlin.h"</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifdef SDSUPPORT</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef Sd2Card_h</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define Sd2Card_h</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="SdFatConfig_8h.html">SdFatConfig.h</a>"</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "SdInfo.h"</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// SPI speed is F_CPU/2^(1 + index), 0 <= index <= 6</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a6c091c07d1eb82a94b1c5738f720264b"> 35</a></span> <span class="comment"></span>uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a6c091c07d1eb82a94b1c5738f720264b">SPI_FULL_SPEED</a> = 0;</div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#abf126d9da3318e2709bbc3f2ab3cb3d1"> 37</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#abf126d9da3318e2709bbc3f2ab3cb3d1">SPI_HALF_SPEED</a> = 1;</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#ad6a75e4ff6409fe1305ec6915787458e"> 39</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#ad6a75e4ff6409fe1305ec6915787458e">SPI_QUARTER_SPEED</a> = 2;</div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#acf9e8ae5785dfdaa0fa59042e528ea6c"> 41</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#acf9e8ae5785dfdaa0fa59042e528ea6c">SPI_EIGHTH_SPEED</a> = 3;</div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a792e282c1b86c65d14e3d6e6612ad2d0"> 43</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a792e282c1b86c65d14e3d6e6612ad2d0">SPI_SIXTEENTH_SPEED</a> = 4;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#ab7b9920a819e60f97f988ee13b3ddc40"> 46</a></span> <span class="comment"></span>uint16_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#ab7b9920a819e60f97f988ee13b3ddc40">SD_INIT_TIMEOUT</a> = 2000;</div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#afb7454898d781c58caa00f82f0f14f63"> 48</a></span> uint16_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#afb7454898d781c58caa00f82f0f14f63">SD_ERASE_TIMEOUT</a> = 10000;</div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a02f6ddc876ebab300586940bd111eccd"> 50</a></span> uint16_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a02f6ddc876ebab300586940bd111eccd">SD_READ_TIMEOUT</a> = 300;</div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a9984cf4ab3088ae5470d56e10e9f23c9"> 52</a></span> uint16_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a9984cf4ab3088ae5470d56e10e9f23c9">SD_WRITE_TIMEOUT</a> = 600;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// SD card errors</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a3803cc53ecc2b346ba950053f3dced47"> 56</a></span> <span class="comment"></span>uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a3803cc53ecc2b346ba950053f3dced47">SD_CARD_ERROR_CMD0</a> = 0X1;</div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a2da93442c11fa58ffd24fe9d7038393d"> 58</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a2da93442c11fa58ffd24fe9d7038393d">SD_CARD_ERROR_CMD8</a> = 0X2;</div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#ae713a04caec74b7a412fc3a4ca7ee8fd"> 60</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#ae713a04caec74b7a412fc3a4ca7ee8fd">SD_CARD_ERROR_CMD12</a> = 0X3;</div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a2e79398dcb2711672e50dc2bea94e141"> 62</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a2e79398dcb2711672e50dc2bea94e141">SD_CARD_ERROR_CMD17</a> = 0X4;</div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a15f61426677cddfb1504e4b98900ae05"> 64</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a15f61426677cddfb1504e4b98900ae05">SD_CARD_ERROR_CMD18</a> = 0X5;</div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#ade761c5ed037fbe0598f80c5e6d34268"> 66</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#ade761c5ed037fbe0598f80c5e6d34268">SD_CARD_ERROR_CMD24</a> = 0X6;</div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a4840a2a3026b537bf0e6a679715ec734"> 68</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a4840a2a3026b537bf0e6a679715ec734">SD_CARD_ERROR_CMD25</a> = 0X7;</div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a0ebfb17cbc424fd2138918aa72307292"> 70</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a0ebfb17cbc424fd2138918aa72307292">SD_CARD_ERROR_CMD58</a> = 0X8;</div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#aa69b04c3716e3e9962617e264e7ebe44"> 72</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#aa69b04c3716e3e9962617e264e7ebe44">SD_CARD_ERROR_ACMD23</a> = 0X9;</div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a62fdea7af4f09fb98f302bac1bfa17c2"> 74</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a62fdea7af4f09fb98f302bac1bfa17c2">SD_CARD_ERROR_ACMD41</a> = 0XA;</div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a0bbae62f7c90e60614cfa9063101c5e1"> 76</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a0bbae62f7c90e60614cfa9063101c5e1">SD_CARD_ERROR_BAD_CSD</a> = 0XB;</div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a7726e63b7a04bc15b70901b418d6dd1e"> 78</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a7726e63b7a04bc15b70901b418d6dd1e">SD_CARD_ERROR_ERASE</a> = 0XC;</div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a00e05ddd835d81e0b4d78ededae70a3c"> 80</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a00e05ddd835d81e0b4d78ededae70a3c">SD_CARD_ERROR_ERASE_SINGLE_BLOCK</a> = 0XD;</div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a8121967a262a076c5191a0e855531f99"> 82</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a8121967a262a076c5191a0e855531f99">SD_CARD_ERROR_ERASE_TIMEOUT</a> = 0XE;</div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#adb9b963e8c54c4daf616cc5fdc4010ac"> 84</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#adb9b963e8c54c4daf616cc5fdc4010ac">SD_CARD_ERROR_READ</a> = 0XF;</div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#af1cdb9d8082532f4fe4b7cf1931dddbe"> 86</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#af1cdb9d8082532f4fe4b7cf1931dddbe">SD_CARD_ERROR_READ_REG</a> = 0X10;</div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a49c57f2b1d31fe1b0baf73fab5bd469b"> 88</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a49c57f2b1d31fe1b0baf73fab5bd469b">SD_CARD_ERROR_READ_TIMEOUT</a> = 0X11;</div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a87264e66265e36be6b1428ebacf2e4ed"> 90</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a87264e66265e36be6b1428ebacf2e4ed">SD_CARD_ERROR_STOP_TRAN</a> = 0X12;</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a98bb1b625b0b9ce99d8494fbb195274c"> 92</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a98bb1b625b0b9ce99d8494fbb195274c">SD_CARD_ERROR_WRITE</a> = 0X13;</div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a376db89ebd1e212110419e3ac7a0c33f"> 94</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a376db89ebd1e212110419e3ac7a0c33f">SD_CARD_ERROR_WRITE_BLOCK_ZERO</a> = 0X14; <span class="comment">// REMOVE - not used</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a30bc1de9e3914ace0b9dc30f99a0edea"> 96</a></span> <span class="comment"></span>uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a30bc1de9e3914ace0b9dc30f99a0edea">SD_CARD_ERROR_WRITE_MULTIPLE</a> = 0X15;</div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a06b427dad894918bd33fe2e74c50c2e0"> 98</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a06b427dad894918bd33fe2e74c50c2e0">SD_CARD_ERROR_WRITE_PROGRAMMING</a> = 0X16;</div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#ae6574296ec37c52209c5f2c5664dccdb"> 100</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#ae6574296ec37c52209c5f2c5664dccdb">SD_CARD_ERROR_WRITE_TIMEOUT</a> = 0X17;</div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#aa4036973d09278197c2949181094e8e2"> 102</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#aa4036973d09278197c2949181094e8e2">SD_CARD_ERROR_SCK_RATE</a> = 0X18;</div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#ab2b7080183030b2cce47b7469e0dde7d"> 104</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#ab2b7080183030b2cce47b7469e0dde7d">SD_CARD_ERROR_INIT_NOT_CALLED</a> = 0X19;</div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#af5888293424a4004d8044626e4caf5c1"> 106</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#af5888293424a4004d8044626e4caf5c1">SD_CARD_ERROR_CRC</a> = 0X20;</div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a6a098bfa2591609ec2003a785648fbc2"> 108</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a6a098bfa2591609ec2003a785648fbc2">SD_CARD_ERROR_FF_TIMEOUT</a> = 0X21;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#abbee750470bb726d2397d838b05a56a8"> 111</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#abbee750470bb726d2397d838b05a56a8">SD_CARD_ERROR_CMD48</a> = 0x80;</div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a3c806dc269ec2ff8ba1aa16b4e64d3a2"> 113</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a3c806dc269ec2ff8ba1aa16b4e64d3a2">SD_CARD_ERROR_CMD49</a> = 0x81;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment">// card types</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#af55081a60d333ab063a5da5dd2c3633b"> 118</a></span> <span class="comment"></span>uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#af55081a60d333ab063a5da5dd2c3633b">SD_CARD_TYPE_SD1</a> = 1;</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a225807c91fc41717b4230d3b7e99c9f7"> 120</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a225807c91fc41717b4230d3b7e99c9f7">SD_CARD_TYPE_SD2</a> = 2;</div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a39b05691c3bcfffddd5d590589980f44"> 122</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a39b05691c3bcfffddd5d590589980f44">SD_CARD_TYPE_SDHC</a> = 3;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor">#if MEGA_SOFT_SPI && (defined(__AVR_ATmega1280__)||defined(__AVR_ATmega2560__))</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor">#define SOFTWARE_SPI</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor">#elif USE_SOFTWARE_SPI</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#define SOFTWARE_SPI</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor">#endif </span><span class="comment">// MEGA_SOFT_SPI</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// SPI pin definitions - do not edit here - change in SdFatConfig.h</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">//</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor">#ifdef SOFTWARE_SPI</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#abe8593732e5a9f38455125b0d499468d"> 137</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#abe8593732e5a9f38455125b0d499468d">SPI_MOSI_PIN</a> = <a class="code" href="SdFatConfig_8h.html#ac2f492b4970ffbbea92d5d3e3f8aa2f0">SOFT_SPI_MOSI_PIN</a>;</div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#ae0bebe57d4925c25bfb58d8999d300ef"> 139</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#ae0bebe57d4925c25bfb58d8999d300ef">SPI_MISO_PIN</a> = <a class="code" href="SdFatConfig_8h.html#af12e3a0d80cb8c7c9e3841887c508f3f">SOFT_SPI_MISO_PIN</a>;</div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="Sd2Card_8h.html#a7e5ead80033d2652108d1b835f3cc0f9"> 141</a></span> uint8_t <span class="keyword">const</span> <a class="code" href="Sd2Card_8h.html#a7e5ead80033d2652108d1b835f3cc0f9">SPI_SCK_PIN</a> = <a class="code" href="SdFatConfig_8h.html#add7db7df22669e60cddd5698113d6327">SOFT_SPI_SCK_PIN</a>;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor">#endif </span><span class="comment">// SOFTWARE_SPI</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classSd2Card.html"> 148</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classSd2Card.html">Sd2Card</a> {</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">public</span>:</div>
<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classSd2Card.html#a17c8713ae610106567679a8685696375"> 151</a></span>  <a class="code" href="classSd2Card.html#a17c8713ae610106567679a8685696375">Sd2Card</a>() : errorCode_(<a class="code" href="Sd2Card_8h.html#ab2b7080183030b2cce47b7469e0dde7d">SD_CARD_ERROR_INIT_NOT_CALLED</a>), type_(0), flash_air_compatible_(false) {}</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  uint32_t <a class="code" href="classSd2Card.html#a21ef1c5321041d4d73107b84e2db5189">cardSize</a>();</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#a2d73473118c5692e0f7d13db7da3570f">erase</a>(uint32_t firstBlock, uint32_t lastBlock);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#aceacbe30077e41ab84a34e629a03bb33">eraseSingleBlockEnable</a>();</div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classSd2Card.html#af03e574590524f93a61641604e02f79f"> 159</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSd2Card.html#af03e574590524f93a61641604e02f79f">error</a>(uint8_t code) {errorCode_ = code;}</div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classSd2Card.html#aa5b94778c1158f33330df6136f392644"> 163</a></span>  uint8_t <a class="code" href="classSd2Card.html#aa5b94778c1158f33330df6136f392644">errorCode</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> errorCode_;}</div>
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classSd2Card.html#ab17b79e63844683fbc1df44293e9cac2"> 165</a></span>  uint8_t <a class="code" href="classSd2Card.html#ab17b79e63844683fbc1df44293e9cac2">errorData</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> status_;}</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#a28c814e4b874e5f0cbf6a62b26ffea0e">init</a>(uint8_t sckRateID = <a class="code" href="Sd2Card_8h.html#a6c091c07d1eb82a94b1c5738f720264b">SPI_FULL_SPEED</a>);</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#a6b015ee1c94004b8b16639910e5a3466">readBlock</a>(uint32_t block, uint8_t* dst);</div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classSd2Card.html#abaf488d56f653efa8e3349bf803ce2b0"> 183</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#abaf488d56f653efa8e3349bf803ce2b0">readCID</a>(<a class="code" href="structCID.html">cid_t</a>* cid) {</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">return</span> readRegister(CMD10, cid);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div>
<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classSd2Card.html#a1b0c68df7f508f876d56fc1270536c87"> 194</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#a1b0c68df7f508f876d56fc1270536c87">readCSD</a>(<a class="code" href="unioncsd__t.html">csd_t</a>* csd) {</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">return</span> readRegister(CMD9, csd);</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  }</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#a7d6e8a504f8525afd6d36a22ee5b8cc0">readData</a>(uint8_t *dst);</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#a3259be9721e14a2edf8b549e4aeb2e40">readStart</a>(uint32_t blockNumber);</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#ae133ad5a80c2652a964afd2320cc7c94">readStop</a>();</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#adc6566016a5c4f459d123bee64730051">setSckRate</a>(uint8_t sckRateID);</div>
<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classSd2Card.html#a944bb5e0a6d872ad7248618d13fa3973"> 204</a></span>  <span class="keywordtype">int</span> <a class="code" href="classSd2Card.html#a944bb5e0a6d872ad7248618d13fa3973">type</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> type_;}</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#ad5eecc3e1e68b9e5a43edfb8e4205469">writeBlock</a>(uint32_t blockNumber, <span class="keyword">const</span> uint8_t* src);</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#afb96025babf92878213dd691263d93ef">writeData</a>(<span class="keyword">const</span> uint8_t* src);</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#a1039df4f6620213a98b317d11da2014e">writeStart</a>(uint32_t blockNumber, uint32_t eraseCount);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#a7e1ec48b0a83d13415841da870290f64">writeStop</a>();</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  </div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="comment">// Toshiba FlashAir support</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  uint8_t <a class="code" href="classSd2Card.html#a921f7fddf35be878208314b320cc57ba">readExtMemory</a>(uint8_t mio, uint8_t func, uint32_t addr, uint16_t count, uint8_t* dst);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  </div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordtype">void</span> setFlashAirCompatible(<span class="keywordtype">bool</span> flashAirCompatible) { flash_air_compatible_ = flashAirCompatible; }</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordtype">bool</span> getFlashAirCompatible()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> flash_air_compatible_; }</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  </div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keyword">private</span>:</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="comment">//----------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  uint8_t errorCode_;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  uint8_t spiRate_;</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  uint8_t status_;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  uint8_t type_;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordtype">bool</span> flash_air_compatible_;</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="comment">// private functions</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  uint8_t cardAcmd(uint8_t cmd, uint32_t arg) {</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  cardCommand(CMD55, 0);</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">return</span> cardCommand(cmd, arg);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  uint8_t cardCommand(uint8_t cmd, uint32_t arg);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  </div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#a7d6e8a504f8525afd6d36a22ee5b8cc0">readData</a>(uint8_t* dst, uint16_t count);</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordtype">bool</span> readRegister(uint8_t cmd, <span class="keywordtype">void</span>* buf);</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordtype">void</span> chipSelectHigh();</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordtype">void</span> chipSelectLow();</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordtype">void</span> <a class="code" href="classSd2Card.html#a944bb5e0a6d872ad7248618d13fa3973">type</a>(uint8_t value) {type_ = value;}</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordtype">bool</span> waitNotBusy(uint16_t timeoutMillis);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordtype">bool</span> <a class="code" href="classSd2Card.html#afb96025babf92878213dd691263d93ef">writeData</a>(uint8_t token, <span class="keyword">const</span> uint8_t* src);</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  </div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  </div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="comment">// Toshiba FlashAir support</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  uint8_t waitStartBlock(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  uint8_t readExt(uint32_t arg, uint8_t* dst, uint16_t count);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> };</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor">#endif </span><span class="comment">// Sd2Card_h</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  </div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  </div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="preprocessor">#endif</span></div>
<div class="ttc" id="aSd2Card_8h_html_a00e05ddd835d81e0b4d78ededae70a3c"><div class="ttname"><a href="Sd2Card_8h.html#a00e05ddd835d81e0b4d78ededae70a3c">SD_CARD_ERROR_ERASE_SINGLE_BLOCK</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_ERASE_SINGLE_BLOCK</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:80</div></div>
<div class="ttc" id="aSd2Card_8h_html_a02f6ddc876ebab300586940bd111eccd"><div class="ttname"><a href="Sd2Card_8h.html#a02f6ddc876ebab300586940bd111eccd">SD_READ_TIMEOUT</a></div><div class="ttdeci">uint16_t const SD_READ_TIMEOUT</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:50</div></div>
<div class="ttc" id="aSd2Card_8h_html_a06b427dad894918bd33fe2e74c50c2e0"><div class="ttname"><a href="Sd2Card_8h.html#a06b427dad894918bd33fe2e74c50c2e0">SD_CARD_ERROR_WRITE_PROGRAMMING</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_WRITE_PROGRAMMING</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:98</div></div>
<div class="ttc" id="aSd2Card_8h_html_a0bbae62f7c90e60614cfa9063101c5e1"><div class="ttname"><a href="Sd2Card_8h.html#a0bbae62f7c90e60614cfa9063101c5e1">SD_CARD_ERROR_BAD_CSD</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_BAD_CSD</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:76</div></div>
<div class="ttc" id="aSd2Card_8h_html_a0ebfb17cbc424fd2138918aa72307292"><div class="ttname"><a href="Sd2Card_8h.html#a0ebfb17cbc424fd2138918aa72307292">SD_CARD_ERROR_CMD58</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_CMD58</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:70</div></div>
<div class="ttc" id="aSd2Card_8h_html_a15f61426677cddfb1504e4b98900ae05"><div class="ttname"><a href="Sd2Card_8h.html#a15f61426677cddfb1504e4b98900ae05">SD_CARD_ERROR_CMD18</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_CMD18</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:64</div></div>
<div class="ttc" id="aSd2Card_8h_html_a225807c91fc41717b4230d3b7e99c9f7"><div class="ttname"><a href="Sd2Card_8h.html#a225807c91fc41717b4230d3b7e99c9f7">SD_CARD_TYPE_SD2</a></div><div class="ttdeci">uint8_t const SD_CARD_TYPE_SD2</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:120</div></div>
<div class="ttc" id="aSd2Card_8h_html_a2da93442c11fa58ffd24fe9d7038393d"><div class="ttname"><a href="Sd2Card_8h.html#a2da93442c11fa58ffd24fe9d7038393d">SD_CARD_ERROR_CMD8</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_CMD8</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:58</div></div>
<div class="ttc" id="aSd2Card_8h_html_a2e79398dcb2711672e50dc2bea94e141"><div class="ttname"><a href="Sd2Card_8h.html#a2e79398dcb2711672e50dc2bea94e141">SD_CARD_ERROR_CMD17</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_CMD17</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:62</div></div>
<div class="ttc" id="aSd2Card_8h_html_a30bc1de9e3914ace0b9dc30f99a0edea"><div class="ttname"><a href="Sd2Card_8h.html#a30bc1de9e3914ace0b9dc30f99a0edea">SD_CARD_ERROR_WRITE_MULTIPLE</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_WRITE_MULTIPLE</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:96</div></div>
<div class="ttc" id="aSd2Card_8h_html_a376db89ebd1e212110419e3ac7a0c33f"><div class="ttname"><a href="Sd2Card_8h.html#a376db89ebd1e212110419e3ac7a0c33f">SD_CARD_ERROR_WRITE_BLOCK_ZERO</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_WRITE_BLOCK_ZERO</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:94</div></div>
<div class="ttc" id="aSd2Card_8h_html_a3803cc53ecc2b346ba950053f3dced47"><div class="ttname"><a href="Sd2Card_8h.html#a3803cc53ecc2b346ba950053f3dced47">SD_CARD_ERROR_CMD0</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_CMD0</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:56</div></div>
<div class="ttc" id="aSd2Card_8h_html_a39b05691c3bcfffddd5d590589980f44"><div class="ttname"><a href="Sd2Card_8h.html#a39b05691c3bcfffddd5d590589980f44">SD_CARD_TYPE_SDHC</a></div><div class="ttdeci">uint8_t const SD_CARD_TYPE_SDHC</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:122</div></div>
<div class="ttc" id="aSd2Card_8h_html_a3c806dc269ec2ff8ba1aa16b4e64d3a2"><div class="ttname"><a href="Sd2Card_8h.html#a3c806dc269ec2ff8ba1aa16b4e64d3a2">SD_CARD_ERROR_CMD49</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_CMD49</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:113</div></div>
<div class="ttc" id="aSd2Card_8h_html_a4840a2a3026b537bf0e6a679715ec734"><div class="ttname"><a href="Sd2Card_8h.html#a4840a2a3026b537bf0e6a679715ec734">SD_CARD_ERROR_CMD25</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_CMD25</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:68</div></div>
<div class="ttc" id="aSd2Card_8h_html_a49c57f2b1d31fe1b0baf73fab5bd469b"><div class="ttname"><a href="Sd2Card_8h.html#a49c57f2b1d31fe1b0baf73fab5bd469b">SD_CARD_ERROR_READ_TIMEOUT</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_READ_TIMEOUT</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:88</div></div>
<div class="ttc" id="aSd2Card_8h_html_a62fdea7af4f09fb98f302bac1bfa17c2"><div class="ttname"><a href="Sd2Card_8h.html#a62fdea7af4f09fb98f302bac1bfa17c2">SD_CARD_ERROR_ACMD41</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_ACMD41</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:74</div></div>
<div class="ttc" id="aSd2Card_8h_html_a6a098bfa2591609ec2003a785648fbc2"><div class="ttname"><a href="Sd2Card_8h.html#a6a098bfa2591609ec2003a785648fbc2">SD_CARD_ERROR_FF_TIMEOUT</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_FF_TIMEOUT</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:108</div></div>
<div class="ttc" id="aSd2Card_8h_html_a6c091c07d1eb82a94b1c5738f720264b"><div class="ttname"><a href="Sd2Card_8h.html#a6c091c07d1eb82a94b1c5738f720264b">SPI_FULL_SPEED</a></div><div class="ttdeci">uint8_t const SPI_FULL_SPEED</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:35</div></div>
<div class="ttc" id="aSd2Card_8h_html_a7726e63b7a04bc15b70901b418d6dd1e"><div class="ttname"><a href="Sd2Card_8h.html#a7726e63b7a04bc15b70901b418d6dd1e">SD_CARD_ERROR_ERASE</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_ERASE</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:78</div></div>
<div class="ttc" id="aSd2Card_8h_html_a792e282c1b86c65d14e3d6e6612ad2d0"><div class="ttname"><a href="Sd2Card_8h.html#a792e282c1b86c65d14e3d6e6612ad2d0">SPI_SIXTEENTH_SPEED</a></div><div class="ttdeci">uint8_t const SPI_SIXTEENTH_SPEED</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:43</div></div>
<div class="ttc" id="aSd2Card_8h_html_a7e5ead80033d2652108d1b835f3cc0f9"><div class="ttname"><a href="Sd2Card_8h.html#a7e5ead80033d2652108d1b835f3cc0f9">SPI_SCK_PIN</a></div><div class="ttdeci">uint8_t const SPI_SCK_PIN</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:141</div></div>
<div class="ttc" id="aSd2Card_8h_html_a8121967a262a076c5191a0e855531f99"><div class="ttname"><a href="Sd2Card_8h.html#a8121967a262a076c5191a0e855531f99">SD_CARD_ERROR_ERASE_TIMEOUT</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_ERASE_TIMEOUT</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:82</div></div>
<div class="ttc" id="aSd2Card_8h_html_a87264e66265e36be6b1428ebacf2e4ed"><div class="ttname"><a href="Sd2Card_8h.html#a87264e66265e36be6b1428ebacf2e4ed">SD_CARD_ERROR_STOP_TRAN</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_STOP_TRAN</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:90</div></div>
<div class="ttc" id="aSd2Card_8h_html_a98bb1b625b0b9ce99d8494fbb195274c"><div class="ttname"><a href="Sd2Card_8h.html#a98bb1b625b0b9ce99d8494fbb195274c">SD_CARD_ERROR_WRITE</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_WRITE</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:92</div></div>
<div class="ttc" id="aSd2Card_8h_html_a9984cf4ab3088ae5470d56e10e9f23c9"><div class="ttname"><a href="Sd2Card_8h.html#a9984cf4ab3088ae5470d56e10e9f23c9">SD_WRITE_TIMEOUT</a></div><div class="ttdeci">uint16_t const SD_WRITE_TIMEOUT</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:52</div></div>
<div class="ttc" id="aSd2Card_8h_html_aa4036973d09278197c2949181094e8e2"><div class="ttname"><a href="Sd2Card_8h.html#aa4036973d09278197c2949181094e8e2">SD_CARD_ERROR_SCK_RATE</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_SCK_RATE</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:102</div></div>
<div class="ttc" id="aSd2Card_8h_html_aa69b04c3716e3e9962617e264e7ebe44"><div class="ttname"><a href="Sd2Card_8h.html#aa69b04c3716e3e9962617e264e7ebe44">SD_CARD_ERROR_ACMD23</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_ACMD23</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:72</div></div>
<div class="ttc" id="aSd2Card_8h_html_ab2b7080183030b2cce47b7469e0dde7d"><div class="ttname"><a href="Sd2Card_8h.html#ab2b7080183030b2cce47b7469e0dde7d">SD_CARD_ERROR_INIT_NOT_CALLED</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_INIT_NOT_CALLED</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:104</div></div>
<div class="ttc" id="aSd2Card_8h_html_ab7b9920a819e60f97f988ee13b3ddc40"><div class="ttname"><a href="Sd2Card_8h.html#ab7b9920a819e60f97f988ee13b3ddc40">SD_INIT_TIMEOUT</a></div><div class="ttdeci">uint16_t const SD_INIT_TIMEOUT</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:46</div></div>
<div class="ttc" id="aSd2Card_8h_html_abbee750470bb726d2397d838b05a56a8"><div class="ttname"><a href="Sd2Card_8h.html#abbee750470bb726d2397d838b05a56a8">SD_CARD_ERROR_CMD48</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_CMD48</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:111</div></div>
<div class="ttc" id="aSd2Card_8h_html_abe8593732e5a9f38455125b0d499468d"><div class="ttname"><a href="Sd2Card_8h.html#abe8593732e5a9f38455125b0d499468d">SPI_MOSI_PIN</a></div><div class="ttdeci">uint8_t const SPI_MOSI_PIN</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:137</div></div>
<div class="ttc" id="aSd2Card_8h_html_abf126d9da3318e2709bbc3f2ab3cb3d1"><div class="ttname"><a href="Sd2Card_8h.html#abf126d9da3318e2709bbc3f2ab3cb3d1">SPI_HALF_SPEED</a></div><div class="ttdeci">uint8_t const SPI_HALF_SPEED</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:37</div></div>
<div class="ttc" id="aSd2Card_8h_html_acf9e8ae5785dfdaa0fa59042e528ea6c"><div class="ttname"><a href="Sd2Card_8h.html#acf9e8ae5785dfdaa0fa59042e528ea6c">SPI_EIGHTH_SPEED</a></div><div class="ttdeci">uint8_t const SPI_EIGHTH_SPEED</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:41</div></div>
<div class="ttc" id="aSd2Card_8h_html_ad6a75e4ff6409fe1305ec6915787458e"><div class="ttname"><a href="Sd2Card_8h.html#ad6a75e4ff6409fe1305ec6915787458e">SPI_QUARTER_SPEED</a></div><div class="ttdeci">uint8_t const SPI_QUARTER_SPEED</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:39</div></div>
<div class="ttc" id="aSd2Card_8h_html_adb9b963e8c54c4daf616cc5fdc4010ac"><div class="ttname"><a href="Sd2Card_8h.html#adb9b963e8c54c4daf616cc5fdc4010ac">SD_CARD_ERROR_READ</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_READ</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:84</div></div>
<div class="ttc" id="aSd2Card_8h_html_ade761c5ed037fbe0598f80c5e6d34268"><div class="ttname"><a href="Sd2Card_8h.html#ade761c5ed037fbe0598f80c5e6d34268">SD_CARD_ERROR_CMD24</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_CMD24</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:66</div></div>
<div class="ttc" id="aSd2Card_8h_html_ae0bebe57d4925c25bfb58d8999d300ef"><div class="ttname"><a href="Sd2Card_8h.html#ae0bebe57d4925c25bfb58d8999d300ef">SPI_MISO_PIN</a></div><div class="ttdeci">uint8_t const SPI_MISO_PIN</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:139</div></div>
<div class="ttc" id="aSd2Card_8h_html_ae6574296ec37c52209c5f2c5664dccdb"><div class="ttname"><a href="Sd2Card_8h.html#ae6574296ec37c52209c5f2c5664dccdb">SD_CARD_ERROR_WRITE_TIMEOUT</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_WRITE_TIMEOUT</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:100</div></div>
<div class="ttc" id="aSd2Card_8h_html_ae713a04caec74b7a412fc3a4ca7ee8fd"><div class="ttname"><a href="Sd2Card_8h.html#ae713a04caec74b7a412fc3a4ca7ee8fd">SD_CARD_ERROR_CMD12</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_CMD12</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:60</div></div>
<div class="ttc" id="aSd2Card_8h_html_af1cdb9d8082532f4fe4b7cf1931dddbe"><div class="ttname"><a href="Sd2Card_8h.html#af1cdb9d8082532f4fe4b7cf1931dddbe">SD_CARD_ERROR_READ_REG</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_READ_REG</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:86</div></div>
<div class="ttc" id="aSd2Card_8h_html_af55081a60d333ab063a5da5dd2c3633b"><div class="ttname"><a href="Sd2Card_8h.html#af55081a60d333ab063a5da5dd2c3633b">SD_CARD_TYPE_SD1</a></div><div class="ttdeci">uint8_t const SD_CARD_TYPE_SD1</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:118</div></div>
<div class="ttc" id="aSd2Card_8h_html_af5888293424a4004d8044626e4caf5c1"><div class="ttname"><a href="Sd2Card_8h.html#af5888293424a4004d8044626e4caf5c1">SD_CARD_ERROR_CRC</a></div><div class="ttdeci">uint8_t const SD_CARD_ERROR_CRC</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:106</div></div>
<div class="ttc" id="aSd2Card_8h_html_afb7454898d781c58caa00f82f0f14f63"><div class="ttname"><a href="Sd2Card_8h.html#afb7454898d781c58caa00f82f0f14f63">SD_ERASE_TIMEOUT</a></div><div class="ttdeci">uint16_t const SD_ERASE_TIMEOUT</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:48</div></div>
<div class="ttc" id="aSdFatConfig_8h_html"><div class="ttname"><a href="SdFatConfig_8h.html">SdFatConfig.h</a></div><div class="ttdoc">configuration definitions</div></div>
<div class="ttc" id="aSdFatConfig_8h_html_ac2f492b4970ffbbea92d5d3e3f8aa2f0"><div class="ttname"><a href="SdFatConfig_8h.html#ac2f492b4970ffbbea92d5d3e3f8aa2f0">SOFT_SPI_MOSI_PIN</a></div><div class="ttdeci">uint8_t const SOFT_SPI_MOSI_PIN</div><div class="ttdef"><b>Definition:</b> SdFatConfig.h:100</div></div>
<div class="ttc" id="aSdFatConfig_8h_html_add7db7df22669e60cddd5698113d6327"><div class="ttname"><a href="SdFatConfig_8h.html#add7db7df22669e60cddd5698113d6327">SOFT_SPI_SCK_PIN</a></div><div class="ttdeci">uint8_t const SOFT_SPI_SCK_PIN</div><div class="ttdef"><b>Definition:</b> SdFatConfig.h:104</div></div>
<div class="ttc" id="aSdFatConfig_8h_html_af12e3a0d80cb8c7c9e3841887c508f3f"><div class="ttname"><a href="SdFatConfig_8h.html#af12e3a0d80cb8c7c9e3841887c508f3f">SOFT_SPI_MISO_PIN</a></div><div class="ttdeci">uint8_t const SOFT_SPI_MISO_PIN</div><div class="ttdef"><b>Definition:</b> SdFatConfig.h:102</div></div>
<div class="ttc" id="aclassSd2Card_html"><div class="ttname"><a href="classSd2Card.html">Sd2Card</a></div><div class="ttdoc">Raw access to SD and SDHC flash memory cards.</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:148</div></div>
<div class="ttc" id="aclassSd2Card_html_a1039df4f6620213a98b317d11da2014e"><div class="ttname"><a href="classSd2Card.html#a1039df4f6620213a98b317d11da2014e">Sd2Card::writeStart</a></div><div class="ttdeci">bool writeStart(uint32_t blockNumber, uint32_t eraseCount)</div><div class="ttdef"><b>Definition:</b> Sd2Card.cpp:708</div></div>
<div class="ttc" id="aclassSd2Card_html_a17c8713ae610106567679a8685696375"><div class="ttname"><a href="classSd2Card.html#a17c8713ae610106567679a8685696375">Sd2Card::Sd2Card</a></div><div class="ttdeci">Sd2Card()</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:151</div></div>
<div class="ttc" id="aclassSd2Card_html_a1b0c68df7f508f876d56fc1270536c87"><div class="ttname"><a href="classSd2Card.html#a1b0c68df7f508f876d56fc1270536c87">Sd2Card::readCSD</a></div><div class="ttdeci">bool readCSD(csd_t *csd)</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:194</div></div>
<div class="ttc" id="aclassSd2Card_html_a21ef1c5321041d4d73107b84e2db5189"><div class="ttname"><a href="classSd2Card.html#a21ef1c5321041d4d73107b84e2db5189">Sd2Card::cardSize</a></div><div class="ttdeci">uint32_t cardSize()</div><div class="ttdef"><b>Definition:</b> Sd2Card.cpp:187</div></div>
<div class="ttc" id="aclassSd2Card_html_a28c814e4b874e5f0cbf6a62b26ffea0e"><div class="ttname"><a href="classSd2Card.html#a28c814e4b874e5f0cbf6a62b26ffea0e">Sd2Card::init</a></div><div class="ttdeci">bool init(uint8_t sckRateID=SPI_FULL_SPEED)</div><div class="ttdef"><b>Definition:</b> Sd2Card.cpp:286</div></div>
<div class="ttc" id="aclassSd2Card_html_a2d73473118c5692e0f7d13db7da3570f"><div class="ttname"><a href="classSd2Card.html#a2d73473118c5692e0f7d13db7da3570f">Sd2Card::erase</a></div><div class="ttdeci">bool erase(uint32_t firstBlock, uint32_t lastBlock)</div><div class="ttdef"><b>Definition:</b> Sd2Card.cpp:231</div></div>
<div class="ttc" id="aclassSd2Card_html_a3259be9721e14a2edf8b549e4aeb2e40"><div class="ttname"><a href="classSd2Card.html#a3259be9721e14a2edf8b549e4aeb2e40">Sd2Card::readStart</a></div><div class="ttdeci">bool readStart(uint32_t blockNumber)</div><div class="ttdef"><b>Definition:</b> Sd2Card.cpp:558</div></div>
<div class="ttc" id="aclassSd2Card_html_a6b015ee1c94004b8b16639910e5a3466"><div class="ttname"><a href="classSd2Card.html#a6b015ee1c94004b8b16639910e5a3466">Sd2Card::readBlock</a></div><div class="ttdeci">bool readBlock(uint32_t block, uint8_t *dst)</div><div class="ttdef"><b>Definition:</b> Sd2Card.cpp:393</div></div>
<div class="ttc" id="aclassSd2Card_html_a7d6e8a504f8525afd6d36a22ee5b8cc0"><div class="ttname"><a href="classSd2Card.html#a7d6e8a504f8525afd6d36a22ee5b8cc0">Sd2Card::readData</a></div><div class="ttdeci">bool readData(uint8_t *dst)</div><div class="ttdef"><b>Definition:</b> Sd2Card.cpp:438</div></div>
<div class="ttc" id="aclassSd2Card_html_a7e1ec48b0a83d13415841da870290f64"><div class="ttname"><a href="classSd2Card.html#a7e1ec48b0a83d13415841da870290f64">Sd2Card::writeStop</a></div><div class="ttdeci">bool writeStop()</div><div class="ttdef"><b>Definition:</b> Sd2Card.cpp:733</div></div>
<div class="ttc" id="aclassSd2Card_html_a921f7fddf35be878208314b320cc57ba"><div class="ttname"><a href="classSd2Card.html#a921f7fddf35be878208314b320cc57ba">Sd2Card::readExtMemory</a></div><div class="ttdeci">uint8_t readExtMemory(uint8_t mio, uint8_t func, uint32_t addr, uint16_t count, uint8_t *dst)</div><div class="ttdef"><b>Definition:</b> Sd2Card.cpp:818</div></div>
<div class="ttc" id="aclassSd2Card_html_a944bb5e0a6d872ad7248618d13fa3973"><div class="ttname"><a href="classSd2Card.html#a944bb5e0a6d872ad7248618d13fa3973">Sd2Card::type</a></div><div class="ttdeci">int type() const</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:204</div></div>
<div class="ttc" id="aclassSd2Card_html_aa5b94778c1158f33330df6136f392644"><div class="ttname"><a href="classSd2Card.html#aa5b94778c1158f33330df6136f392644">Sd2Card::errorCode</a></div><div class="ttdeci">uint8_t errorCode() const</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:163</div></div>
<div class="ttc" id="aclassSd2Card_html_ab17b79e63844683fbc1df44293e9cac2"><div class="ttname"><a href="classSd2Card.html#ab17b79e63844683fbc1df44293e9cac2">Sd2Card::errorData</a></div><div class="ttdeci">uint8_t errorData() const</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:165</div></div>
<div class="ttc" id="aclassSd2Card_html_abaf488d56f653efa8e3349bf803ce2b0"><div class="ttname"><a href="classSd2Card.html#abaf488d56f653efa8e3349bf803ce2b0">Sd2Card::readCID</a></div><div class="ttdeci">bool readCID(cid_t *cid)</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:183</div></div>
<div class="ttc" id="aclassSd2Card_html_aceacbe30077e41ab84a34e629a03bb33"><div class="ttname"><a href="classSd2Card.html#aceacbe30077e41ab84a34e629a03bb33">Sd2Card::eraseSingleBlockEnable</a></div><div class="ttdeci">bool eraseSingleBlockEnable()</div><div class="ttdef"><b>Definition:</b> Sd2Card.cpp:271</div></div>
<div class="ttc" id="aclassSd2Card_html_ad5eecc3e1e68b9e5a43edfb8e4205469"><div class="ttname"><a href="classSd2Card.html#ad5eecc3e1e68b9e5a43edfb8e4205469">Sd2Card::writeBlock</a></div><div class="ttdeci">bool writeBlock(uint32_t blockNumber, const uint8_t *src)</div><div class="ttdef"><b>Definition:</b> Sd2Card.cpp:632</div></div>
<div class="ttc" id="aclassSd2Card_html_adc6566016a5c4f459d123bee64730051"><div class="ttname"><a href="classSd2Card.html#adc6566016a5c4f459d123bee64730051">Sd2Card::setSckRate</a></div><div class="ttdeci">bool setSckRate(uint8_t sckRateID)</div><div class="ttdef"><b>Definition:</b> Sd2Card.cpp:603</div></div>
<div class="ttc" id="aclassSd2Card_html_ae133ad5a80c2652a964afd2320cc7c94"><div class="ttname"><a href="classSd2Card.html#ae133ad5a80c2652a964afd2320cc7c94">Sd2Card::readStop</a></div><div class="ttdeci">bool readStop()</div><div class="ttdef"><b>Definition:</b> Sd2Card.cpp:577</div></div>
<div class="ttc" id="aclassSd2Card_html_af03e574590524f93a61641604e02f79f"><div class="ttname"><a href="classSd2Card.html#af03e574590524f93a61641604e02f79f">Sd2Card::error</a></div><div class="ttdeci">void error(uint8_t code)</div><div class="ttdef"><b>Definition:</b> Sd2Card.h:159</div></div>
<div class="ttc" id="aclassSd2Card_html_afb96025babf92878213dd691263d93ef"><div class="ttname"><a href="classSd2Card.html#afb96025babf92878213dd691263d93ef">Sd2Card::writeData</a></div><div class="ttdeci">bool writeData(const uint8_t *src)</div><div class="ttdef"><b>Definition:</b> Sd2Card.cpp:664</div></div>
<div class="ttc" id="astructCID_html"><div class="ttname"><a href="structCID.html">CID</a></div><div class="ttdef"><b>Definition:</b> SdInfo.h:100</div></div>
<div class="ttc" id="aunioncsd__t_html"><div class="ttname"><a href="unioncsd__t.html">csd_t</a></div><div class="ttdef"><b>Definition:</b> SdInfo.h:280</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>