UDP Library compalier Fehler?

Hallo,

ich habe Probleme mit der UDP Library und zwar wollte ich das Udp NTP Beispiel ausprobieren. For Arduino 0022, see the built in Udp NTP example, and also see http://arduino.cc/en/Tutorial/UdpNtpClient

Leider bekomme ich beim compalieren immer folgenden Fehler:

In file included from /bin/arduino-0022/libraries/spi/SPI.h:15, from /bin/arduino-0022/libraries/Ethernet/w5100.h:14, from /bin/arduino-0022/libraries/Ethernet/UdpRaw.cpp:31: /bin/arduino-0022/hardware/arduino/cores/arduino/WProgram.h:18: error: declaration of C function 'uint16_t makeWord(byte, byte)' conflicts with /bin/arduino-0022/hardware/arduino/cores/arduino/WProgram.h:17: error: previous declaration 'uint16_t makeWord(uint16_t)' here /bin/arduino-0022/hardware/arduino/cores/arduino/WProgram.h:28: error: declaration of C function 'long int random(long int)' conflicts with /opt/cross/avr/lib/gcc/avr/4.3.3/../../../../avr/include/stdlib.h:504: error: previous declaration 'long int random()' here /bin/arduino-0022/hardware/arduino/cores/arduino/WProgram.h:29: error: declaration of C function 'long int random(long int, long int)' conflicts with /bin/arduino-0022/hardware/arduino/cores/arduino/WProgram.h:28: error: previous declaration 'long int random(long int)' here /bin/arduino-0022/libraries/Ethernet/UdpRaw.cpp: In member function 'void UdpRawClass::begin(uint16_t)': /bin/arduino-0022/libraries/Ethernet/UdpRaw.cpp:42: error: 'Sn_MR_UDP' was not declared in this scope /bin/arduino-0022/libraries/Ethernet/UdpRaw.cpp: In member function 'int UdpRawClass::available()': /bin/arduino-0022/libraries/Ethernet/UdpRaw.cpp:65: error: 'getSn_RX_RSR' was not declared in this scope

Hat jemand eine Idee was das Problem ist?

Gruß Snoops

Hallo Snoops, leider kann ich deinen Fehler nicht nachvollziehen. Bei mir kommt folgender Compiler Fehler:

sketch_nov12a.cpp:46:1: error: ‘UDP’ does not name a type

Wenn ich diese Zeile (bei mir Zeile 42 im Code)

UDP Udp;

auskommentiere, bekomme ich keine weiteren Fehler. Aber, das Programm geht trotzdem nicht. Bei der weiteren Fehleranalyse stellte ich fest, dass ich (vielleicht nur in meinem Fall) ein Gateway angeben muss. Programm wurde daraufhin folgendermaßen ergänzt:

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {  
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 
  192,168,123,99 };
byte gateway[] = { 192,168,123,254 };

und

  // start Ethernet and UDP
  Ethernet.begin(mac,ip,gateway);

Dann geht's. Kontrollier in deinem Beispiel nochmals, ob du alles genau kopiert hast. Reduziere den Code mal auf die #include Zeilen und schau, ob der Fehler immer noch kommt. Gruß Reinhard

Hallo,

ich habs nochmal mit folgendem Code zum testen probiert. Leider mit demselben Problem als Ergebnis?
#include <SPI.h>
#include <Ethernet.h>
#include <UdpBytewise.h>

/* UdpSendBytewise.pde: Example how to send packets over UDP using the UdpBytewise library

  • by assembling packets byte-by-byte
  • to check for received packets on Unix-ish setup, execute:
  • sudo tcpdump -A -ien0 “udp port 8000”
  • bjoern@cs.stanford.edu 12/29/2008 */

/* ETHERNET CONFIGURATION

  • ARDUINO: set MAC, IP address of Ethernet shield, its gateway,
  • and local port to listen on for incoming packets */
    byte mac = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //MAC address to use
    byte ip = { 192, 168, 11, 200 }; // Arduino’s IP address
    byte gw = { 192, 168, 11, 1 }; // Gateway IP address
    int localPort = 8888; //local port to listen on

/* TARGET: set this to IP/Port of computer that will receive

  • UDP messages from Arduino */
    byte targetIp = { 192, 168, 11, 15};
    int targetPort = 8000;

int i=0;

void setup() {
Ethernet.begin(mac,ip,gw);
UdpBytewise.begin(localPort);
}

void loop() {
// this version of sendPacket sends a zero-terminated string.
UdpBytewise.beginPacket(targetIp,targetPort);
UdpBytewise.print("Hello, World! ");
UdpBytewise.print(i++);
UdpBytewise.endPacket();
delay(1000);
}

Für weiter Ideen zur Problemursache wäre ich dankbar?

Gruß
Snoops

Hallo Snoops,
check mal diesen Forumseintrag http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1284070155/all
Hier hatte jemand ähnliche Probleme durch die Vermischung zweier Versionen.
Mir ist bei deiner Compiler Fehlermeldung folgendes aufgefallen:

In file included from /bin/arduino-0022/libraries/spi/SPI.h:15,
from /bin/arduino-0022/libraries/Ethernet/w5100.h:14,
from /bin/arduino-0022/libraries/Ethernet/UdpRaw.cpp:31:

Die Files w5100. und UdpRaw.cpp gibt es in meiner 0022 Version nicht in diesem Verzeichnis. Das Verzeichnis für SPI.h ist bei mir
…/arduino/libraries/SPI/ als “SPI” groß geschrieben.
Damit kann ich den Fehler zwar nicht erklären aber vielleicht zum Lösungsweg beitragen.
Reinhard