Serial.begin zerstört Code

Hallo Leute,

hab einen rieeesen Code auf nem Arduino Nano, der über 91 % und 88% verfügt.

Nun das komische:
Sobald ich Serial.begin aktiviere, stürzt der Code immer an der Selben stelle ab. Nehme ich Serial.begin raus, läuft er wie gewollt.

Ohne habe ich noch gute 86 % und 84%

Da läuft alles einwandfrei.

Kann mir dass jemand erklären woher dass kommen kann?

Den Code kann ich nicht posten, der hat über 2500 Zeilen.

Ich nutze außerdem die SPI Library und U8g2 Lib. Nicht dass da was zusammenhängt.

Viele Grüße

Wird vielleicht er so sein, dass du dir damit die ganze Serial Bibliothek ins Programm holst und da werden zwei 64 Byte Puffer angelegt. Und kannst halt nicht das gesamte RAM belegen, da da noch Platz für Stack, lokale Variablen, etc. sein muss

Hey,

kann ich da was machen ? Ausser Code optimieren, das haben wir schon gemacht, haben insgesamt 33 % gespart.

Ich würde gerne mit Serial einfache Zahlenwerte noch über RX/TX raushauen. Geht leider nicht, weil das Programm abflacht.

Wenn Du schon optimiert hast, dann größeren MC nehmen.

Gruß Tommy

Noch gleich was, Arduino.h

Was genau war das nochmal? Für was braucht man die?

Und noch etwas :slight_smile:

habe einen char* TextArray[50] { "Text", "Text2", } also 49 Texte inclusive einen für \0;

Dieser verbraucht viel Globale Variablen. Kann man dass eleganter Lösen?

Weil kommentiere ich die hälfte von TextArray aus, läuft Serial.begin und der Code funkt.

Dabei geht auch der Globale Speicher von 86 auf 68 zurück.

Es kommt auch keine Kompatibilitätsproblem Meldung mehr.

Du sagst du hättest den Code optimiert, aber das offensichtlichste hast du scheinbar nicht getan:

Google nach

F-Makro Arduino
PROGMEM Arduino

wenn das nicht hilft

Den Code kann ich nicht posten, der hat über 2500 Zeilen.

zippen und als Anhang dazunehmen.
Voraussetzung: zu allen eingebundenen Libs kommentieren woher diese genau sind!

Ich kann mir nicht vorstellen, das diese Anweisung deinen Code zerstört.

HotSystems:
Ich kann mir nicht vorstellen, das diese Anweisung deinen Code zerstört.

er meint wohl, der uC läuft nicht wie geplant :wink:

ElEspanol:
er meint wohl, der uC läuft nicht wie geplant :wink:

Und warum schreibt er das nicht ?
Zumindest sollte er den Titel anpassen.

91, 88, 86 und 84% von Was?

Den Sketch kannst Du auch als File anhängen.

habe einen char* TextArray[50] { "Text", "Text2", } also 49 Texte inclusive einen für \0;

Verbraucht viel RAM.

Franz_grundi:
Noch gleich was, Arduino.h

Was genau war das nochmal? Für was braucht man die?

Bei solchen Fragen, frage ich mich, "Warum schaut der da nicht eben selber rein?"

Also:
Schau rein, und du wirst sehen ob du darauf verzichten kannst/willst

Fragen ist doch bequemer, als selbst was tun.

Gruß Tommy