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

📄 enc28j60_8h-source.html

📁 国外牛人公开的AVR代码
💻 HTML
📖 第 1 页 / 共 3 页
字号:
00222 <span class="preprocessor"></span><span class="comment">// ENC28J60 PHY PHCON2 Register Bit Definitions</span>00223 <span class="preprocessor">#define PHCON2_FRCLINK  0x4000</span>00224 <span class="preprocessor"></span><span class="preprocessor">#define PHCON2_TXDIS    0x2000</span>00225 <span class="preprocessor"></span><span class="preprocessor">#define PHCON2_JABBER   0x0400</span>00226 <span class="preprocessor"></span><span class="preprocessor">#define PHCON2_HDLDIS   0x0100</span>00227 <span class="preprocessor"></span>00228 <span class="comment">// ENC28J60 Packet Control Byte Bit Definitions</span>00229 <span class="preprocessor">#define PKTCTRL_PHUGEEN     0x08</span>00230 <span class="preprocessor"></span><span class="preprocessor">#define PKTCTRL_PPADEN      0x04</span>00231 <span class="preprocessor"></span><span class="preprocessor">#define PKTCTRL_PCRCEN      0x02</span>00232 <span class="preprocessor"></span><span class="preprocessor">#define PKTCTRL_POVERRIDE   0x01</span>00233 <span class="preprocessor"></span>00234 <span class="comment">// SPI operation codes</span>00235 <span class="preprocessor">#define ENC28J60_READ_CTRL_REG  0x00</span>00236 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_READ_BUF_MEM   0x3A</span>00237 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_WRITE_CTRL_REG 0x40</span>00238 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_WRITE_BUF_MEM  0x7A</span>00239 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_BIT_FIELD_SET  0x80</span>00240 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_BIT_FIELD_CLR  0xA0</span>00241 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_SOFT_RESET     0xFF</span>00242 <span class="preprocessor"></span>00243 00244 <span class="comment">// buffer boundaries applied to internal 8K ram</span>00245 <span class="comment">//  entire available packet buffer space is allocated</span>00246 <span class="preprocessor">#define TXSTART_INIT    0x0000  // start TX buffer at 0</span>00247 <span class="preprocessor"></span><span class="preprocessor">#define RXSTART_INIT    0x0600  // give TX buffer space for one full ethernet frame (~1500 bytes)</span>00248 <span class="preprocessor"></span><span class="preprocessor">#define RXSTOP_INIT     0x1FFF  // receive buffer gets the rest</span>00249 <span class="preprocessor"></span>00250 <span class="preprocessor">#define MAX_FRAMELEN    1518    // maximum ethernet frame length</span>00251 <span class="preprocessor"></span>00252 <span class="comment">// Ethernet constants</span>00253 <span class="preprocessor">#define ETHERNET_MIN_PACKET_LENGTH  0x3C</span>00254 <span class="preprocessor"></span><span class="comment">//#define ETHERNET_HEADER_LENGTH        0x0E</span>00255 00256 <span class="preprocessor">#define ENC28J60_CONTROL_PORT   PORTB</span>00257 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_CONTROL_DDR    DDRB</span>00258 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_CONTROL_CS     0</span>00259 <span class="preprocessor"></span>00260 <span class="comment">// MAC address for this interface</span>00261 <span class="preprocessor">#ifdef ETHADDR0</span>00262 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_MAC0 ETHADDR0</span>00263 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_MAC1 ETHADDR1</span>00264 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_MAC2 ETHADDR2</span>00265 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_MAC3 ETHADDR3</span>00266 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_MAC4 ETHADDR4</span>00267 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_MAC5 ETHADDR5</span>00268 <span class="preprocessor"></span><span class="preprocessor">#else</span>00269 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_MAC0 '0'</span>00270 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_MAC1 'F'</span>00271 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_MAC2 'F'</span>00272 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_MAC3 'I'</span>00273 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_MAC4 'C'</span>00274 <span class="preprocessor"></span><span class="preprocessor">#define ENC28J60_MAC5 'E'</span>00275 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00276 <span class="preprocessor"></span>00277 00278 <span class="comment">// functions</span>00279 <span class="preprocessor">#include "<a class="code" href="nic_8h.html">nic.h</a>"</span>00280 00281 <span class="comment">// setup ports for I/O</span>00282 <span class="comment">//void ax88796SetupPorts(void);</span>00283 <span class="comment"></span>00284 <span class="comment">//! do a ENC28J60 read operation</span>00285 <span class="comment"></span>u08 <a class="code" href="group__enc28j60.html#ga0">enc28j60ReadOp</a>(u08 <a class="code" href="structnetBootpHeader.html#o0">op</a>, u08 address);<span class="comment"></span>00286 <span class="comment">//! do a ENC28J60 write operation</span>00287 <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__enc28j60.html#ga1">enc28j60WriteOp</a>(u08 <a class="code" href="structnetBootpHeader.html#o0">op</a>, u08 address, u08 data);<span class="comment"></span>00288 <span class="comment">//! read the packet buffer memory</span>00289 <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__enc28j60.html#ga2">enc28j60ReadBuffer</a>(u16 len, u08* data);<span class="comment"></span>00290 <span class="comment">//! write the packet buffer memory</span>00291 <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__enc28j60.html#ga3">enc28j60WriteBuffer</a>(u16 len, u08* data);<span class="comment"></span>00292 <span class="comment">//! set the register bank for register at address</span>00293 <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__enc28j60.html#ga4">enc28j60SetBank</a>(u08 address);<span class="comment"></span>00294 <span class="comment">//! read ax88796 register</span>00295 <span class="comment"></span>u08 <a class="code" href="group__enc28j60.html#ga5">enc28j60Read</a>(u08 address);<span class="comment"></span>00296 <span class="comment">//! write ax88796 register</span>00297 <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__enc28j60.html#ga6">enc28j60Write</a>(u08 address, u08 data);<span class="comment"></span>00298 <span class="comment">//! read a PHY register</span>00299 <span class="comment"></span>u16 <a class="code" href="group__enc28j60.html#ga7">enc28j60PhyRead</a>(u08 address);<span class="comment"></span>00300 <span class="comment">//! write a PHY register</span>00301 <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__enc28j60.html#ga8">enc28j60PhyWrite</a>(u08 address, u16 data);00302 <span class="comment"></span>00303 <span class="comment">//! initialize the ethernet interface for transmit/receive</span>00304 <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__enc28j60.html#ga9">enc28j60Init</a>(<span class="keywordtype">void</span>);00305 <span class="comment"></span>00306 <span class="comment">//! Packet transmit function.</span>00307 <span class="comment">/// Sends a packet on the network.  It is assumed that the packet is headed by a valid ethernet header.</span>00308 <span class="comment">/// \param len      Length of packet in bytes.</span>00309 <span class="comment">/// \param packet   Pointer to packet data.</span>00310 <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__enc28j60.html#ga10">enc28j60PacketSend</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* packet);00311 <span class="comment"></span>00312 <span class="comment">//! Packet receive function.</span>00313 <span class="comment">/// Gets a packet from the network receive buffer, if one is available.</span>00314 <span class="comment">/// The packet will by headed by an ethernet header.</span>00315 <span class="comment">/// \param  maxlen  The maximum acceptable length of a retrieved packet.</span>00316 <span class="comment">/// \param  packet  Pointer where packet data should be stored.</span>00317 <span class="comment">/// \return Packet length in bytes if a packet was retrieved, zero otherwise.</span>00318 <span class="comment"></span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="group__enc28j60.html#ga11">enc28j60PacketReceive</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxlen, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* packet);00319 <span class="comment"></span>00320 <span class="comment">//! execute procedure for recovering from a receive overflow</span>00321 <span class="comment">/// this should be done when the receive memory fills up with packets</span>00322 <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__enc28j60.html#ga12">enc28j60ReceiveOverflowRecover</a>(<span class="keywordtype">void</span>);00323 <span class="comment"></span>00324 <span class="comment">//! formatted print of important ENC28J60 registers</span>00325 <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__enc28j60.html#ga13">enc28j60RegDump</a>(<span class="keywordtype">void</span>);00326 00327 <span class="preprocessor">#endif</span>00328 <span class="preprocessor"></span><span class="comment">//@}</span></span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Oct 24 16:03:55 2005 for Procyon AVRlib by&nbsp;<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>

⌨️ 快捷键说明

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