ich bin grad dabei mir eine Bedienoberfläche zu machen und hab dafür mehrere Buttons. Sobald ich eine bestimmte Anzahl an 's dazu füge kann ich meinen Webserver nicht mehr erreichen.
Es ist ein Arduino Uno und der Code hat 10432 bytes also nichtmal die Hälfte des verfügbaren.
Frage: sollte ich es einfach ins Progmem schreiben ??
also es bleibt auch hängen wenn ich an anderer stelle etwas ändere. ich bin grad ziemlich verwirrt da ich mir ein basis programm genommen habe und dann daran mein eigenes entwickelt habe.
syntaktisch ist alles ok und der compiler erkennt auch alles. das verwirrt mich grad als 32 Bit programmierer
wieviel kann ich in den progmem schreiben ??
und wie könte ich die datenmenge berechnen ? ich will nicht alle byte werten von den zeichen raussuchen und zusammenrechnen
Danke für deine Antwort, wenigstens weiss ich das ich auf dem richtigen Weg war.
Kannst du vielleicht dein Programm mal irgendwo posten ?? ich würde gerne die Menge an Text sehen.Danke.
An alle die es vielleicht interessiert, ich habe erfolgreich GET requests mit meinem Arduino + Ethernet Shield hergestellt.
Wen der Code interessiert, fragt mich dann poste ich ihn.
Ich bin aktuell dabei ein grösseres Projekt zu machen das ich natürlich sobald ich es fertig habe präsentieren werde.
Wen der Code interessiert, fragt mich dann poste ich ihn.
Hi,
im Moment habe ich leider zu viele Baustellen, aber ich stand schon einmal vor dem Problem. Würde mich also über den Code freuen Hier gibts auch schon funktionierenden Code.
byte mac[] = { 0x54, 0x55, 0x58, 0x10, 0x00, 0x24 }; //mac
byte ip[] = { 192, 168, 2, 111 }; // IP-Adresse
byte gway[] = { 192, 168, 2, 1 }; // Gateway
byte subnet[] = { 255, 255, 255, 0 };
byte server[] = { 192,168,2,102 }; // IP of your web server
String buf = String(100);
Client client(server, 80);
void setup() {
Ethernet.begin(mac, ip, gway);
Serial.begin(9600);
delay(1000);
}
String fetchParam(int count){
String getHTTP = "GET /twitter/twitter.php?value="; //http get request line
String req; //requested command
switch(count){
case 1: req = _DATE; break;
case 2: req = _TIME; break;
case 3: req = _USER; break;
case 4: req = _COMM; break;
case 5: req = _MESS; break;
default: Serial.print("no default");
break;
}
getHTTP = getHTTP + req; // concatenate the parts of the get request
Serial.println("establishing Server connection...");
if (client.connect()) { //connect to server
Serial.println("Server connection established...");
// Make a HTTP request:
client.print(getHTTP); //location of my TwitPHP script
// Serial.print(comm);
client.println();
}
else {
Serial.println("connection failed");
}
delay(1000);
Serial.print("Response from server: ");
while (client.available()) {
char c = client.read();
Serial.print(c);
buf = buf + c;
}
return buf;
}
Ich habe auch noch meine alten Skripte mit dem funktionierenden verglichen und konnte eigentlich keine Unterschiede erkennen. Jedoch funktioniert es so und mein Arduino kann jetzt ohne Probleme seine Befehle von Twitter abholen um Dinge auszuführen
Ich vermute der Speicher ist am Ende... Da wirst Du wohl schlanker programmieren müssen
Sebastian
Hi Sebastian, ja mein Speicher war am Ende da ich alles HTML bedingte nich in den Flash Speicher geschrieben hab und somit mein SRAM komplett voll war und nix mehr ging, hab mich jetzt mal ein wenig mehr eingelesen bezüglich progmem etc. und was es bedeutet bzw. bewirkt.
Ich habe eher den falschen Überhaupt Ansatz an die Geschichte genommen, ich hab einfach einen Mikrocontroller gekauft und nicht drüber nachgedacht das man nicht einfach xy software auf so ein Teil spielen kann, sondern das man sich auch mit der Materie befassen muss (Speicher etc.).
ich habe nicht das komplette sketch gepostet. sondern nur die dinge die wichtig sind das die funktion sinn macht
Ich denke includes werdet ihr hinkriegen.
Ich möchte das ganze Sketch noch nich posten da es noch nicht fertig is und ich nicht vorher alle details meines Projektes darlegen möchte.