Hi Mario,
werd mir den Code mal heute Abend reinziehen und versuchen zu verstehen.
Wie funktioniert denn bei Dir die Telnetverbindung? Wird die permanent offen gehalten, oder baust Du die bei jedem Mal Datenabfragen neu auf?
Ich mach die Verbindung auf, lese die Daten und beende die Verbindung mit client.stop()
Seh ich die Abfolge so richtig:
#include <SD.h>
#include <SPI.h>
#include <Ethernet.h>
// Definition MAC und IP-Adresse des Arduino:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,90);
IPAddress t_server (192,168,1,95);
EthernetClient client;
EthernetServer server(80);
void setup() {
Ethernet.begin(mac, ip);
server.begin();
}
void loop() {
// die Unterfunktionen sinnvoll und v.a. nicht gleichzeitig aufrufen.
Ethserver();
Ethclient();
sdCard();
}
void Ethserver() {
// code
}
void Ethclient() {
client.connect(t_server, 23);
// code
client.stop();
}
void sdCard() {
// code
}
Ist die Abfolge und das Einbauen der Befehle in die Setup-Routine und in das zyklische Programm so richtig?
Bei einem Punkt bin ich mir nicht so sicher:
Ich schalte immer mit Pin 4 und Pin 10 zwischen SD-Karte und WIZ-Chip um. (Hab das Ethernet-Shield)
Momentan fahr ich ja nur den Telnet-Client. Den stoppe ich am Ende des Datenaustausches immer, und schreibe dann auf die SD-Karte.
Wie ist das bei einem aktiven Serverdienst? Was passiert da, wenn ich dem WIZ-Chip mittendrin das CS-Signal nehme?
Vorausgesetzt natürlich, daß keine Verbindung aktiv ist.
gruß/hk007