Datasheet
ipMask[1] := 255;
ipMask[2] := 255;
ipMask[3] := 0;
dnsIpAddr[0] := 192;
dnsIpAddr[1] := 168;
dnsIpAddr[2] := 20;
dnsIpAddr[3] := 1;
{*
* starts ENC28J60 with :
* reset bit on PORTB.B4
* CS bit on PORTB.B5
* my MAC & IP address
* full duplex
*}
SPI1_Init_Advanced(_SPI_MASTER, _SPI_FCY_DIV2, _SPI_CLK_LO_LEAD-
ING);
SPI_Rd_Ptr := @SPI1_Read;
SPI_Ethernet_UserTCP_Ptr := @SPI_Ethernet_UserTCP;
SPI_Ethernet_UserUDP_Ptr := @SPI_Ethernet_UserUDP;
SPI_Ethernet_Init(myMacAddr, myIpAddr, SPI_Ethernet_FULLDUPLEX) ;
// dhcp will not be used here, so use preconfigured addresses
SPI_Ethernet_confNetwork(ipMask, gwIpAddr, dnsIpAddr) ;
while true do // do forever
begin
SPI_Ethernet_doPacket() ; // process incoming Ethernet packets
{*
* add your stuff here if needed
* SPI_Ethernet_doPacket() must be called as often as possible
* otherwise packets could be lost
*}
end;
end.
Unit eth_enc28j60_utils code :
unit eth_enc28j60_utils;
{************************************************************
* ROM constant strings
*}
const httpHeader : string[30] = 'HTTP/1.1 200 OK'+#10+'Content-type:
' ; // HTTP header
393
MIKROELEKTRONIKA - SOFTWARE AND HARDWARE SOLUTIONS FOR EMBEDDED WORLD
Libraries
mikroPASCAL PRO for AVR
CHAPTER 6