- Arduino Uno
- ENC28J60
- EtherCard.h
i am trying to compile and run this example. But i am getting this error.
"exit status 1 'word homePage()' was declared 'extern' and later 'static' [-fpermissive]"
#include <EtherCard.h>
static byte mymac[] = {0x65,0x77,0x33,0x2D,0x30,0x66};
static byte myip[] = {192,168,0,99};
byte Ethernet::buffer[500];
BufferFiller bfill;
static word homePage() {
bfill = ether.tcpOffset();
bfill.emit_p( PSTR (
"HTTP/1.0 503 test page\r\n"
"Content-Type: text/html\r\n"
"Retry-After: 600\r\n"
"\r\n"
"<html>"
"<head><title>"
"Arduino test page"
"</title></head>"
"<body>"
"<h3>Test</h3>"
"<p>Test</p>"
"</body>"
"</html>"
)) ;
return bfill.position();
}
void setup() {
// put your setup code here, to run once:
Serial.begin(57600);
Serial.println("TEST");
Serial.println();
Serial.print("Status: ");
if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) {
Serial.println( "Failed to access Ethernet controller");
}
else {
Serial.println( "Ethernet controller OK!");
ether.staticSetup(myip);
ether.dhcpSetup();
}
Serial.println();
ether.printIp("My IP: ", ether.myip);
ether.printIp("GW IP: ", ether.gwip);
ether.printIp("DNS IP: ", ether.dnsip);
}
void loop() {
// put your main code here, to run repeatedly:
word pos = ether.packetLoop(ether.packetReceive());
if (pos){
for (int i=pos;Ethernet::buffer[i]; i++) {
Serial.print((char)Ethernet::buffer[i]);
Serial.println();
ether.httpServerReply(homePage());
}
}
}
Is something wrong with the code or library? The example was copied from the net. Library was updated.
Could u help me with this problem. How to fix it?
Please check with the code I have provided. It is identical to the sketch provided by Jean-Claude Wipper's Github page except, I always have to supply Chip Select Pin to the "ether.begin" function or else my ENC28J60 won't respond.
Essential Task
Before uploading your sketch, you first need to connect your ENC28J60 module to your PC using LAN cable or you can also connect to your router. Now the main part comes. The variable "gwip" must match with your gateway IP address.
If you have connected with your PC, find your PC > Ethernet's IP address which may be look like "169.254.x.x":

If you have connected to your router, place router's IP in "gwip".
Once you get Gateway IP, write it to "gwip" variable and upload your sketch :)