⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ata_8h-source.html

📁 ATMEL的AVR单片机库文件
💻 HTML
📖 第 1 页 / 共 2 页
字号:
00092 <span class="preprocessor"></span><span class="preprocessor">#define ATA_DISKPARM_SECTORS    0x11    // number of sectors per head per cylinder</span>00093 <span class="preprocessor"></span>00094 <span class="comment">// ATA Identity fields</span>00095 <span class="comment">// all offsets refer to word offset (2 byte increments)</span>00096 <span class="preprocessor">#define ATA_IDENT_DEVICETYPE    0       // specifies ATA/ATAPI, removable/non-removable</span>00097 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_CYLINDERS     1       // number of logical cylinders</span>00098 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_HEADS         3       // number of logical heads</span>00099 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_SECTORS       6       // number of sectors per track</span>00100 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_SERIAL        10      // drive model name (20 characters)</span>00101 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_MODEL         27      // drive model name (40 characters)</span>00102 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_FIELDVALID    53      // indicates field validity of higher words (bit0: words54-58, bit1: words 64-70)</span>00103 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_LBASECTORS    60      // number of sectors in LBA translation mode</span>00104 <span class="preprocessor"></span>00105 <span class="comment">// drive mode defines (for ataSetDrivePowerMode() )</span>00106 <span class="preprocessor">#define ATA_DISKMODE_SPINDOWN   0</span>00107 <span class="preprocessor"></span><span class="preprocessor">#define ATA_DISKMODE_SPINUP     1</span>00108 <span class="preprocessor"></span><span class="preprocessor">#define ATA_DISKMODE_SETTIMEOUT 2</span>00109 <span class="preprocessor"></span><span class="preprocessor">#define ATA_DISKMODE_SLEEP      3</span>00110 <span class="preprocessor"></span>00111 <span class="comment">// typedefs</span>00112 <span class="comment">// drive info structure</span>00113 <span class="keyword">typedef</span> <span class="keyword">struct </span>00114 <span class="keyword"></span>{00115     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>  cylinders;00116     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> heads;00117     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> sectors;00118     <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> sizeinsectors;00119     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> LBAsupport;00120     <span class="keywordtype">char</span> model[41];00121 } typeDriveInfo;00122 00123 00124 <span class="comment">// Prototypes</span>00125 <span class="keywordtype">void</span> ataInit(<span class="keywordtype">void</span>);00126 <span class="keywordtype">void</span> ataDriveInit(<span class="keywordtype">void</span>);00127 <span class="keywordtype">void</span> ataDriveSelect(u08 DriveNo);00128 <span class="keywordtype">void</span> ataSetDrivePowerMode(u08 DriveNo, u08 mode, u08 timeout);00129 u08  ataReadByte(u08 reg);00130 <span class="keywordtype">void</span> ataWriteByte(u08 reg, u08 data);00131 <span class="keywordtype">void</span> ataShowRegisters(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> DriveNo);00132 u08  ataSWReset(<span class="keywordtype">void</span>);00133 <span class="keywordtype">void</span> ataDiskErr(<span class="keywordtype">void</span>);00134 <span class="keywordtype">void</span> ataPrintSector( u08 *Buffer);00135 <span class="keywordtype">void</span> ataReadDataBuffer(u08 *Buffer, u16 numBytes);00136 <span class="keywordtype">void</span> ataWriteDataBuffer(u08 *Buffer, u16 numBytes);00137 u08 ataStatusWait(u08 mask, u08 waitStatus);00138 00139 <span class="comment">// read and write routines for CHS based drives</span>00140 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataReadSectorsCHS(    <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00141                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Head, 00142                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Track,00143                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Sector,00144                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00145                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00146 00147 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataWriteSectorsCHS(   <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00148                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Head, 00149                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Track,00150                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Sector,00151                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00152                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00153 00154 <span class="comment">// read and write routines for LBA based drives</span>00155 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataReadSectorsLBA(    <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00156                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> lba,00157                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00158                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00159 00160 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataWriteSectorsLBA(   <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00161                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> lba,00162                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00163                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00164 00165 <span class="comment">// generic read and write routines using LBA</span>00166 <span class="comment">//   uses native or translated LBA addressing</span>00167 <span class="comment">//   given autodetected drive type</span>00168 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataReadSectors(   <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00169                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> lba,00170                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00171                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00172 00173 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataWriteSectors(  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00174                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> lba,00175                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00176                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00177 00178 <span class="comment">//unsigned char IdentifyDrive(unsigned char DriveNo,  unsigned char *Buffer, tdefDriveInfo *DriveInfo);</span>00179 <span class="comment">//unsigned char SetMode(unsigned char DriveNo, unsigned char Mode, unsigned char PwrDown);</span>00180 <span class="comment">//unsigned char ATA_Idle(unsigned char Drive);</span>00181 00182 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Oct 15 03:50:21 2004 for Procyon AVRlib by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.6 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -