- 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?