1- #include " w5100.h"
1+ #include " utility/ w5100.h"
22#include " Ethernet.h"
33#include " Dhcp.h"
44
@@ -16,18 +16,22 @@ int EthernetClass::begin(uint8_t *mac_address)
1616
1717 // Initialise the basic info
1818 W5100.init ();
19+ SPI.beginTransaction (SPI_ETHERNET_SETTINGS);
1920 W5100.setMACAddress (mac_address);
2021 W5100.setIPAddress (IPAddress (0 ,0 ,0 ,0 ).raw_address ());
22+ SPI.endTransaction ();
2123
2224 // Now try to get our config info from a DHCP server
2325 int ret = _dhcp->beginWithDHCP (mac_address);
2426 if (ret == 1 )
2527 {
2628 // We've successfully found a DHCP server and got our configuration info, so set things
2729 // accordingly
30+ SPI.beginTransaction (SPI_ETHERNET_SETTINGS);
2831 W5100.setIPAddress (_dhcp->getLocalIp ().raw_address ());
2932 W5100.setGatewayIp (_dhcp->getGatewayIp ().raw_address ());
3033 W5100.setSubnetMask (_dhcp->getSubnetMask ().raw_address ());
34+ SPI.endTransaction ();
3135 _dnsServerAddress = _dhcp->getDnsServerIp ();
3236 }
3337
@@ -61,10 +65,12 @@ void EthernetClass::begin(uint8_t *mac_address, IPAddress local_ip, IPAddress dn
6165void EthernetClass::begin (uint8_t *mac, IPAddress local_ip, IPAddress dns_server, IPAddress gateway, IPAddress subnet)
6266{
6367 W5100.init ();
68+ SPI.beginTransaction (SPI_ETHERNET_SETTINGS);
6469 W5100.setMACAddress (mac);
65- W5100.setIPAddress (local_ip._address );
66- W5100.setGatewayIp (gateway._address );
67- W5100.setSubnetMask (subnet._address );
70+ W5100.setIPAddress (local_ip.raw_address ());
71+ W5100.setGatewayIp (gateway.raw_address ());
72+ W5100.setSubnetMask (subnet.raw_address ());
73+ SPI.endTransaction ();
6874 _dnsServerAddress = dns_server;
6975}
7076
@@ -80,9 +86,11 @@ int EthernetClass::maintain(){
8086 case DHCP_CHECK_RENEW_OK:
8187 case DHCP_CHECK_REBIND_OK:
8288 // we might have got a new IP.
89+ SPI.beginTransaction (SPI_ETHERNET_SETTINGS);
8390 W5100.setIPAddress (_dhcp->getLocalIp ().raw_address ());
8491 W5100.setGatewayIp (_dhcp->getGatewayIp ().raw_address ());
8592 W5100.setSubnetMask (_dhcp->getSubnetMask ().raw_address ());
93+ SPI.endTransaction ();
8694 _dnsServerAddress = _dhcp->getDnsServerIp ();
8795 break ;
8896 default :
@@ -96,21 +104,27 @@ int EthernetClass::maintain(){
96104IPAddress EthernetClass::localIP ()
97105{
98106 IPAddress ret;
107+ SPI.beginTransaction (SPI_ETHERNET_SETTINGS);
99108 W5100.getIPAddress (ret.raw_address ());
109+ SPI.endTransaction ();
100110 return ret;
101111}
102112
103113IPAddress EthernetClass::subnetMask ()
104114{
105115 IPAddress ret;
116+ SPI.beginTransaction (SPI_ETHERNET_SETTINGS);
106117 W5100.getSubnetMask (ret.raw_address ());
118+ SPI.endTransaction ();
107119 return ret;
108120}
109121
110122IPAddress EthernetClass::gatewayIP ()
111123{
112124 IPAddress ret;
125+ SPI.beginTransaction (SPI_ETHERNET_SETTINGS);
113126 W5100.getGatewayIp (ret.raw_address ());
127+ SPI.endTransaction ();
114128 return ret;
115129}
116130
0 commit comments