Skip to content
This repository was archived by the owner on Feb 21, 2020. It is now read-only.

Commit 5e6f028

Browse files
author
sebba
committed
2 parents 170038a + 975149b commit 5e6f028

File tree

4 files changed

+160
-31
lines changed

4 files changed

+160
-31
lines changed

libraries/Ethernet/src/Ethernet.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,30 @@ int EthernetClass::begin(uint8_t *mac_address)
1616

1717
// Initialise the basic info
1818
W5100.init();
19+
#ifndef ARDUINO_ARCH_SAMD
1920
SPI.beginTransaction(SPI_ETHERNET_SETTINGS);
21+
#endif
2022
W5100.setMACAddress(mac_address);
2123
W5100.setIPAddress(IPAddress(0,0,0,0).raw_address());
24+
#ifndef ARDUINO_ARCH_SAMD
2225
SPI.endTransaction();
26+
#endif
2327

2428
// Now try to get our config info from a DHCP server
2529
int ret = _dhcp->beginWithDHCP(mac_address);
2630
if(ret == 1)
2731
{
2832
// We've successfully found a DHCP server and got our configuration info, so set things
2933
// accordingly
34+
#ifndef ARDUINO_ARCH_SAMD
3035
SPI.beginTransaction(SPI_ETHERNET_SETTINGS);
36+
#endif
3137
W5100.setIPAddress(_dhcp->getLocalIp().raw_address());
3238
W5100.setGatewayIp(_dhcp->getGatewayIp().raw_address());
3339
W5100.setSubnetMask(_dhcp->getSubnetMask().raw_address());
40+
#ifndef ARDUINO_ARCH_SAMD
3441
SPI.endTransaction();
42+
#endif
3543
_dnsServerAddress = _dhcp->getDnsServerIp();
3644
}
3745

@@ -65,12 +73,16 @@ void EthernetClass::begin(uint8_t *mac_address, IPAddress local_ip, IPAddress dn
6573
void EthernetClass::begin(uint8_t *mac, IPAddress local_ip, IPAddress dns_server, IPAddress gateway, IPAddress subnet)
6674
{
6775
W5100.init();
76+
#ifndef ARDUINO_ARCH_SAMD
6877
SPI.beginTransaction(SPI_ETHERNET_SETTINGS);
78+
#endif
6979
W5100.setMACAddress(mac);
7080
W5100.setIPAddress(local_ip.raw_address());
7181
W5100.setGatewayIp(gateway.raw_address());
7282
W5100.setSubnetMask(subnet.raw_address());
83+
#ifndef ARDUINO_ARCH_SAMD
7384
SPI.endTransaction();
85+
#endif
7486
_dnsServerAddress = dns_server;
7587
}
7688

@@ -86,11 +98,15 @@ int EthernetClass::maintain(){
8698
case DHCP_CHECK_RENEW_OK:
8799
case DHCP_CHECK_REBIND_OK:
88100
//we might have got a new IP.
101+
#ifndef ARDUINO_ARCH_SAMD
89102
SPI.beginTransaction(SPI_ETHERNET_SETTINGS);
103+
#endif
90104
W5100.setIPAddress(_dhcp->getLocalIp().raw_address());
91105
W5100.setGatewayIp(_dhcp->getGatewayIp().raw_address());
92106
W5100.setSubnetMask(_dhcp->getSubnetMask().raw_address());
107+
#ifndef ARDUINO_ARCH_SAMD
93108
SPI.endTransaction();
109+
#endif
94110
_dnsServerAddress = _dhcp->getDnsServerIp();
95111
break;
96112
default:
@@ -104,27 +120,39 @@ int EthernetClass::maintain(){
104120
IPAddress EthernetClass::localIP()
105121
{
106122
IPAddress ret;
123+
#ifndef ARDUINO_ARCH_SAMD
107124
SPI.beginTransaction(SPI_ETHERNET_SETTINGS);
125+
#endif
108126
W5100.getIPAddress(ret.raw_address());
127+
#ifndef ARDUINO_ARCH_SAMD
109128
SPI.endTransaction();
129+
#endif
110130
return ret;
111131
}
112132

113133
IPAddress EthernetClass::subnetMask()
114134
{
115135
IPAddress ret;
136+
#ifndef ARDUINO_ARCH_SAMD
116137
SPI.beginTransaction(SPI_ETHERNET_SETTINGS);
138+
#endif
117139
W5100.getSubnetMask(ret.raw_address());
140+
#ifndef ARDUINO_ARCH_SAMD
118141
SPI.endTransaction();
142+
#endif
119143
return ret;
120144
}
121145

122146
IPAddress EthernetClass::gatewayIP()
123147
{
124148
IPAddress ret;
149+
#ifndef ARDUINO_ARCH_SAMD
125150
SPI.beginTransaction(SPI_ETHERNET_SETTINGS);
151+
#endif
126152
W5100.getGatewayIp(ret.raw_address());
153+
#ifndef ARDUINO_ARCH_SAMD
127154
SPI.endTransaction();
155+
#endif
128156
return ret;
129157
}
130158

0 commit comments

Comments
 (0)