Suche

Hallo,
kann es sein, das die Suchfunktion im neuen Forum noch nicht funktioniert?
Denn selbst wenn ich "Arduino" eingebe und in allen Foren suche, erhalte ich keine Ergebnisse.
Irgendwann habe ich hier 'mal etwas gelesen, das man sich den Speicherverbrauch zur Laufzeit anzeigen lassen kann, weiß aber leider nicht mehr wo das war.
Vielleicht kann mir ja jemand helfen.
Gruß
Christoph

Das Update ist noch nicht komplett. Forum Software auf einen neuen Stand zu bringen und die alten Daten zu importieren ist eine riesige Arbeit. Im Moment sieht es wie Pfusch aus und vieles funktioniert nicht, aber ich habe schon viel schlimmeres gesehen.

Was noch an RAM frei ist bekommst du hiermit:

int getFreeRAM() 
{
  extern int __heap_start, *__brkval; 
  int v; 
  return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); 
}

Falls Du es seit gestern nicht mitbekommen hast:
Das Forum befindet sich in Umstellungsphase auf eine neue Version der Forensoftware.

@Serenifly

Vielen Dank, ich werde das gleich mal testen.
Ich sitze hier an einem Sketch mit 4 Ledstripes (W2812B) und Ethernetshield. Da wird der Speicher schon eng. Jetzt hängt sich das Ganze aber nach einiger Zeit auf, und der Uno ist nur noch durch unterbrechen der Betriebsspannung wiederzubeleben. Wahrscheinlich habe ich irgendwo einen Variablenüberlauf oder einfach keinen Speicher mehr. Aber die Fehlersuche macht ja auch Spass.

@jurs
Doch, das habe ich mitbekommen.
Auch wenn ich wenig schreibe, so lese ich hier doch regelmäßig.
Mir ging es nur darum, zu erfahren ob die Suchfunktion (noch) nicht funktioniert oder ich einfach zu dumm bin sie zu bedienen.

Gruß
Christoph

Ich tippe mal daß Dir das RAM ausgeht. Hast Du die F()-Makro benutzt?

Ich kann Dich beruhigen: Nein, Du bist nicht zu dumm... :wink:

Grüße Uwe

uwefed:
Ich tippe mal daß Dir das RAM ausgeht. Hast Du die F()-Makro benutzt?

Nein, damit habe ich mich bis heute noch nicht beschäftigt.
Kommt als nächstes.
Die oben gezeigte Funktion gibt mir, an verschiedenen Stellen im Code, als kleinsten Wert "318" aus. Wenn das Byte sind, bin ich wohl an der Grenze.
Vielen Dank schon mal für die Hilfe.
Christoph

Dann mach mal überall wo du print()/println() mit String Konstanten verwendest ein F() darum:

.print(F("String im Flash"));

Wenn du das nicht machst werden alle Strings am Anfang ins RAM kopiert, was schnell hunderte von Bytes verschwendet. Das geht mit sowohl mit Serial als auch Ethernet, sowieso allen anderen Klassen die print()/println() verwenden (und von der Print Klasse abgeleitet sind).

Und wenn du die String Klasse verwendest, werfe die raus. Das kostet nur unnötig Speicher und Rechenzeit.

Hallo,

Serenifly:
Dann mach mal überall wo du print()/println() mit String Konstanten verwendest ein F() darum:

.print(F("String im Flash"));

danke, das hat schon einige Byte gebracht.
Ich werde jetzt auch meine anderen Sketche, nach und nach, damit "verbessern".

Serenifly:
Und wenn du die String Klasse verwendest, werfe die raus. Das kostet nur unnötig Speicher und Rechenzeit.

Das ist die nächste Baustelle. Ich bin es halt von anderen Sprachen gewohnt damit zu arbeiten. "substring" oder "indexOf" sind schon recht praktische und einfache Funktionen.

Zwischenzeitlich ist auch das Problem mit dem Abstürzen gelöst. Es war ein Hardwareproblem verursacht vom Ethernetshield. Der bleibt in unregelmäßigen Abständen einfach irgendwie hängen und blockiert das ganze System. Ich hätte vielleicht doch nicht den billigsten bei Ebay kaufen sollen. Mit einem anderen Ethernetshield, den ich mal bei Watterot gekauft habe, läuft es jetzt wie gewünscht.

Gruß
Christoph

Es war ein Hardwareproblem verursacht vom Ethernetshield. Der bleibt in unregelmäßigen Abständen einfach irgendwie hängen und blockiert das ganze System. Ich hätte vielleicht doch nicht den billigsten bei Ebay kaufen sollen.

Das liegt meist an den zu kurzen Pin's an dem ICSP Stecker für den SPI Bus. Die stecken dann nicht weit genug drin, und es gibt Probleme.
Das ist der 6 Polige Stecker auf dem Shield. Schau dir das mal genauer an.

Wegen dem neuen Forum:
Das ist nicht einfach und eine Frikelei bis alles wieder läuft.
Und das in dieser kurzen Zeit fast wieder alles funktioniert, und es kaum Ausfälle gab - zeigt das gute Arbeit geleistet wird. a la bonheur !