?lang_form?
?lang_select?
?lang_submit?
?lang_endform?
{HEADER END}
{FILE START}
library
?curdirlinks? - Rev 6
?prevdifflink? - Blame - ?getfile?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Procyon AVRlib: MultiMedia and SD Flash Card Interface (mmc.c)</title>
<link href="dox.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.2 -->
<div class="qindex"><a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a></div>
<h1>MultiMedia and SD Flash Card Interface (mmc.c)<br>
<small>
[<a class="el" href="group__driver__hw.html">Drivers (for external hardware)</a>]</small>
</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
<div class="fragment"><pre class="fragment"><span class="preprocessor"> #include "<a class="code" href="mmc_8h.html">mmc.h</a>"</span>
</pre></div> <dl compact><dt><b>Description</b></dt><dd>This library offers some simple functions which can be used to read and write data on a MultiMedia or SecureDigital (SD) Flash Card. Although MM and SD Cards are designed to operate with their own special bus wiring and protocols, both types of cards also provide a simple SPI-like interface mode which is exceptionally useful when attempting to use the cards in embedded systems.</dd></dl>
<dl compact><dt><b>Wiring</b></dt><dd>To work with this library, the card must be wired to the SPI port of the Atmel microcontroller as described below. Typical cards can operate at up to 25MHz maximum SPI clock rate (thus faster than most AVR's maximum SPI clock rate). <pre>
_________________
/ 1 2 3 4 5 6 78 | <- view of MMC/SD card looking at contacts
/ 9 | Pins 8 and 9 are present only on SD cards
| MMC/SD Card |
| |
/\/\/\/\/\/\/\/\/\/\
1 - CS (chip select) - wire to any available I/O pin(*)
2 - DIN (data in, card<-host) - wire to SPI MOSI pin
3 - VSS (ground) - wire to ground
4 - VDD (power, 3.3V only?) - wire to power (MIGHT BE 3.3V ONLY!)
5 - SCLK (data clock) - wire to SPI SCK pin
6 - VSS (ground) - wire to ground
7 - DOUT (data out, card->host) - wire to SPI MISO pin</pre></dd></dl>
(*) you must define this chip select I/O pin in <a class="el" href="mmcconf_8h.html">mmcconf.h</a> <dl compact><dt><b>Note:</b></dt><dd><pre> This code is currently below version 1.0, and therefore is considered
to be lacking in some functionality or documentation, or may not be fully
tested. Nonetheless, you can expect most functions to work.
</pre></dd></dl>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga6" doxytag="mmc::MMC_GO_IDLE_STATE"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga6">MMC_GO_IDLE_STATE</a> 0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">initialize card to SPI-type access <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga7" doxytag="mmc::MMC_SEND_OP_COND"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga7">MMC_SEND_OP_COND</a> 1</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">set card operational mode <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga8" doxytag="mmc::MMC_SEND_CSD"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga8">MMC_SEND_CSD</a> 9</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">get card's CSD <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga9" doxytag="mmc::MMC_SEND_CID"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga9">MMC_SEND_CID</a> 10</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">get card's CID <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga10" doxytag="mmc::MMC_SEND_STATUS"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_SEND_STATUS</b> 13</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga11" doxytag="mmc::MMC_SET_BLOCKLEN"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga11">MMC_SET_BLOCKLEN</a> 16</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set number of bytes to transfer per block. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga12" doxytag="mmc::MMC_READ_SINGLE_BLOCK"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga12">MMC_READ_SINGLE_BLOCK</a> 17</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">read a block <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga13" doxytag="mmc::MMC_WRITE_BLOCK"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga13">MMC_WRITE_BLOCK</a> 24</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">write a block <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga14" doxytag="mmc::MMC_PROGRAM_CSD"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_PROGRAM_CSD</b> 27</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga15" doxytag="mmc::MMC_SET_WRITE_PROT"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_SET_WRITE_PROT</b> 28</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga16" doxytag="mmc::MMC_CLR_WRITE_PROT"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_CLR_WRITE_PROT</b> 29</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga17" doxytag="mmc::MMC_SEND_WRITE_PROT"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_SEND_WRITE_PROT</b> 30</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga18" doxytag="mmc::MMC_TAG_SECTOR_START"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_TAG_SECTOR_START</b> 32</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga19" doxytag="mmc::MMC_TAG_SECTOR_END"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_TAG_SECTOR_END</b> 33</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga20" doxytag="mmc::MMC_UNTAG_SECTOR"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_UNTAG_SECTOR</b> 34</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga21" doxytag="mmc::MMC_TAG_ERASE_GROUP_START"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga21">MMC_TAG_ERASE_GROUP_START</a> 35</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets beginning of erase group (mass erase). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga22" doxytag="mmc::MMC_TAG_ERARE_GROUP_END"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga22">MMC_TAG_ERARE_GROUP_END</a> 36</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets end of erase group (mass erase). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga23" doxytag="mmc::MMC_UNTAG_ERASE_GROUP"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga23">MMC_UNTAG_ERASE_GROUP</a> 37</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Untag (unset) erase group (mass erase). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga24" doxytag="mmc::MMC_ERASE"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga24">MMC_ERASE</a> 38</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Perform block/mass erase. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga25" doxytag="mmc::MMC_CRC_ON_OFF"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga25">MMC_CRC_ON_OFF</a> 59</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Turns CRC check on/off. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga26" doxytag="mmc::MMC_R1_BUSY"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga26">MMC_R1_BUSY</a> 0x80</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">R1 response: bit indicates card is busy. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga27" doxytag="mmc::MMC_R1_PARAMETER"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_R1_PARAMETER</b> 0x40</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga28" doxytag="mmc::MMC_R1_ADDRESS"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_R1_ADDRESS</b> 0x20</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga29" doxytag="mmc::MMC_R1_ERASE_SEQ"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_R1_ERASE_SEQ</b> 0x10</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga30" doxytag="mmc::MMC_R1_COM_CRC"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_R1_COM_CRC</b> 0x08</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga31" doxytag="mmc::MMC_R1_ILLEGAL_COM"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_R1_ILLEGAL_COM</b> 0x04</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga32" doxytag="mmc::MMC_R1_ERASE_RESET"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_R1_ERASE_RESET</b> 0x02</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga33" doxytag="mmc::MMC_R1_IDLE_STATE"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_R1_IDLE_STATE</b> 0x01</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga34" doxytag="mmc::MMC_STARTBLOCK_READ"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga34">MMC_STARTBLOCK_READ</a> 0xFE</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">when received from card, indicates that a block of data will follow <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga35" doxytag="mmc::MMC_STARTBLOCK_WRITE"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga35">MMC_STARTBLOCK_WRITE</a> 0xFE</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">when sent to card, indicates that a block of data will follow <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga36" doxytag="mmc::MMC_STARTBLOCK_MWRITE"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_STARTBLOCK_MWRITE</b> 0xFC</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga37" doxytag="mmc::MMC_STOPTRAN_WRITE"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_STOPTRAN_WRITE</b> 0xFD</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga38" doxytag="mmc::MMC_DE_MASK"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_DE_MASK</b> 0x1F</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga39" doxytag="mmc::MMC_DE_ERROR"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_DE_ERROR</b> 0x01</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga40" doxytag="mmc::MMC_DE_CC_ERROR"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_DE_CC_ERROR</b> 0x02</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga41" doxytag="mmc::MMC_DE_ECC_FAIL"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_DE_ECC_FAIL</b> 0x04</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga42" doxytag="mmc::MMC_DE_OUT_OF_RANGE"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_DE_OUT_OF_RANGE</b> 0x04</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga43" doxytag="mmc::MMC_DE_CARD_LOCKED"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_DE_CARD_LOCKED</b> 0x04</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga44" doxytag="mmc::MMC_DR_MASK"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_DR_MASK</b> 0x1F</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga45" doxytag="mmc::MMC_DR_ACCEPT"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_DR_ACCEPT</b> 0x05</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga46" doxytag="mmc::MMC_DR_REJECT_CRC"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_DR_REJECT_CRC</b> 0x0B</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga47" doxytag="mmc::MMC_DR_REJECT_WRITE_ERROR"></a>
#define </td><td class="memItemRight" valign="bottom"><b>MMC_DR_REJECT_WRITE_ERROR</b> 0x0D</td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga0">mmcInit</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u08 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga1">mmcReset</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u08 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga2">mmcSendCommand</a> (u08 cmd, u32 arg)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u08 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga3">mmcRead</a> (u32 sector, u08 *buffer)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u08 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga4">mmcWrite</a> (u32 sector, u08 *buffer)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u08 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mmc.html#ga5">mmcCommand</a> (u08 cmd, u32 arg)</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ga5" doxytag="mmc.h::mmcCommand"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">u08 mmcCommand </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">u08 </td>
<td class="mdname" nowrap> <em>cmd</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>u32 </td>
<td class="mdname" nowrap> <em>arg</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Internal command function. Issues a generic MMC command as specified by cmd and arg.
<p>
Definition at line <a class="el" href="mmc_8c-source.html#l00189">189</a> of file <a class="el" href="mmc_8c-source.html">mmc.c</a>. </td>
</tr>
</table>
<a class="anchor" name="ga0" doxytag="mmc.h::mmcInit"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">void mmcInit </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">void </td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Initialize AVR<->MMC hardware interface. Prepares hardware for MMC access.
<p>
Definition at line <a class="el" href="mmc_8c-source.html#l00040">40</a> of file <a class="el" href="mmc_8c-source.html">mmc.c</a>. </td>
</tr>
</table>
<a class="anchor" name="ga3" doxytag="mmc.h::mmcRead"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">u08 mmcRead </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">u32 </td>
<td class="mdname" nowrap> <em>sector</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>u08 * </td>
<td class="mdname" nowrap> <em>buffer</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Read 512-byte sector from card to buffer Returns zero if successful.
<p>
Definition at line <a class="el" href="mmc_8c-source.html#l00116">116</a> of file <a class="el" href="mmc_8c-source.html">mmc.c</a>. </td>
</tr>
</table>
<a class="anchor" name="ga1" doxytag="mmc.h::mmcReset"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">u08 mmcReset </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">void </td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Initialize the card and prepare it for use. Returns zero if successful.
<p>
Definition at line <a class="el" href="mmc_8c-source.html#l00049">49</a> of file <a class="el" href="mmc_8c-source.html">mmc.c</a>. </td>
</tr>
</table>
<a class="anchor" name="ga2" doxytag="mmc.h::mmcSendCommand"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">u08 mmcSendCommand </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">u08 </td>
<td class="mdname" nowrap> <em>cmd</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>u32 </td>
<td class="mdname" nowrap> <em>arg</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Send card an MMC command. Returns R1 result code.
<p>
Definition at line <a class="el" href="mmc_8c-source.html#l00102">102</a> of file <a class="el" href="mmc_8c-source.html">mmc.c</a>. </td>
</tr>
</table>
<a class="anchor" name="ga4" doxytag="mmc.h::mmcWrite"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">u08 mmcWrite </td>
<td class="md" valign="top">( </td>
<td class="md" nowrap valign="top">u32 </td>
<td class="mdname" nowrap> <em>sector</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>u08 * </td>
<td class="mdname" nowrap> <em>buffer</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Write 512-byte sector from buffer to card Returns zero if successful.
<p>
Definition at line <a class="el" href="mmc_8c-source.html#l00147">147</a> of file <a class="el" href="mmc_8c-source.html">mmc.c</a>. </td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Sun Oct 29 03:41:09 2006 for Procyon AVRlib by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.2 </small></address>
</body>
</html>
|
{FILE END}
{FOOTER START}
Powered by WebSVN v2.8.3