@@ -16,22 +16,30 @@ int EthernetClass::begin(uint8_t *mac_address)
16
16
17
17
// Initialise the basic info
18
18
W5100.init ();
19
+ #ifndef ARDUINO_ARCH_SAMD
19
20
SPI.beginTransaction (SPI_ETHERNET_SETTINGS);
21
+ #endif
20
22
W5100.setMACAddress (mac_address);
21
23
W5100.setIPAddress (IPAddress (0 ,0 ,0 ,0 ).raw_address ());
24
+ #ifndef ARDUINO_ARCH_SAMD
22
25
SPI.endTransaction ();
26
+ #endif
23
27
24
28
// Now try to get our config info from a DHCP server
25
29
int ret = _dhcp->beginWithDHCP (mac_address);
26
30
if (ret == 1 )
27
31
{
28
32
// We've successfully found a DHCP server and got our configuration info, so set things
29
33
// accordingly
34
+ #ifndef ARDUINO_ARCH_SAMD
30
35
SPI.beginTransaction (SPI_ETHERNET_SETTINGS);
36
+ #endif
31
37
W5100.setIPAddress (_dhcp->getLocalIp ().raw_address ());
32
38
W5100.setGatewayIp (_dhcp->getGatewayIp ().raw_address ());
33
39
W5100.setSubnetMask (_dhcp->getSubnetMask ().raw_address ());
40
+ #ifndef ARDUINO_ARCH_SAMD
34
41
SPI.endTransaction ();
42
+ #endif
35
43
_dnsServerAddress = _dhcp->getDnsServerIp ();
36
44
}
37
45
@@ -65,12 +73,16 @@ void EthernetClass::begin(uint8_t *mac_address, IPAddress local_ip, IPAddress dn
65
73
void EthernetClass::begin (uint8_t *mac, IPAddress local_ip, IPAddress dns_server, IPAddress gateway, IPAddress subnet)
66
74
{
67
75
W5100.init ();
76
+ #ifndef ARDUINO_ARCH_SAMD
68
77
SPI.beginTransaction (SPI_ETHERNET_SETTINGS);
78
+ #endif
69
79
W5100.setMACAddress (mac);
70
80
W5100.setIPAddress (local_ip.raw_address ());
71
81
W5100.setGatewayIp (gateway.raw_address ());
72
82
W5100.setSubnetMask (subnet.raw_address ());
83
+ #ifndef ARDUINO_ARCH_SAMD
73
84
SPI.endTransaction ();
85
+ #endif
74
86
_dnsServerAddress = dns_server;
75
87
}
76
88
@@ -86,11 +98,15 @@ int EthernetClass::maintain(){
86
98
case DHCP_CHECK_RENEW_OK:
87
99
case DHCP_CHECK_REBIND_OK:
88
100
// we might have got a new IP.
101
+ #ifndef ARDUINO_ARCH_SAMD
89
102
SPI.beginTransaction (SPI_ETHERNET_SETTINGS);
103
+ #endif
90
104
W5100.setIPAddress (_dhcp->getLocalIp ().raw_address ());
91
105
W5100.setGatewayIp (_dhcp->getGatewayIp ().raw_address ());
92
106
W5100.setSubnetMask (_dhcp->getSubnetMask ().raw_address ());
107
+ #ifndef ARDUINO_ARCH_SAMD
93
108
SPI.endTransaction ();
109
+ #endif
94
110
_dnsServerAddress = _dhcp->getDnsServerIp ();
95
111
break ;
96
112
default :
@@ -104,27 +120,39 @@ int EthernetClass::maintain(){
104
120
IPAddress EthernetClass::localIP ()
105
121
{
106
122
IPAddress ret;
123
+ #ifndef ARDUINO_ARCH_SAMD
107
124
SPI.beginTransaction (SPI_ETHERNET_SETTINGS);
125
+ #endif
108
126
W5100.getIPAddress (ret.raw_address ());
127
+ #ifndef ARDUINO_ARCH_SAMD
109
128
SPI.endTransaction ();
129
+ #endif
110
130
return ret;
111
131
}
112
132
113
133
IPAddress EthernetClass::subnetMask ()
114
134
{
115
135
IPAddress ret;
136
+ #ifndef ARDUINO_ARCH_SAMD
116
137
SPI.beginTransaction (SPI_ETHERNET_SETTINGS);
138
+ #endif
117
139
W5100.getSubnetMask (ret.raw_address ());
140
+ #ifndef ARDUINO_ARCH_SAMD
118
141
SPI.endTransaction ();
142
+ #endif
119
143
return ret;
120
144
}
121
145
122
146
IPAddress EthernetClass::gatewayIP ()
123
147
{
124
148
IPAddress ret;
149
+ #ifndef ARDUINO_ARCH_SAMD
125
150
SPI.beginTransaction (SPI_ETHERNET_SETTINGS);
151
+ #endif
126
152
W5100.getGatewayIp (ret.raw_address ());
153
+ #ifndef ARDUINO_ARCH_SAMD
127
154
SPI.endTransaction ();
155
+ #endif
128
156
return ret;
129
157
}
130
158
0 commit comments