Warum hängt sich der µC immer an folgender Stelle auf?

Hallo zusammen!
Hat jemand eine Idee warum mein Sketch immer an folgender Stelle hängen bleibt?

Wenn ich noch die Zeile zum Kopieren einfüge, bleibt er viel früher hängen - hat Arduino einen Watchdog oder ähnliches im Hintergrund aktiviert?

Danke!
lg.

Bildschirmfoto 2016-10-11 um 19.02.21.png

Nochmal der 1. Screenshot, wegen dem Infotext, der im Weg war.

code1.png

Falsch programmiert? Speicher voll? Bitte Arduino Typ und Sketch posten!

Guten Abend!

Bevor dir irgendjemand helfen kann beantworte mal folgende Fragen:

  • Was für einen Arduino hast du denn?

Auf einem Arduino mit dem ATMega328 kann das Programm überhaupt nicht funktionieren, weil du auf einem Controller der 2kB Ram hat mehr als 4240Byte aka 4kB Daten speichern willst. (finde den Fehler ;))

  • Was möchtest du tun?

Der. Fehler liegt meist im geheimen Teil des Sketches.
Also poste bitte den kompletten Sketch.
Aber nicht als Bildschirmfoto.
Den kannst du direkt in Code-Tags einfügen.

Addi2438: Auf einem Arduino mit dem ATMega328 kann das Programm überhaupt nicht funktionieren, weil du auf einem Controller der 2kB Ram hat mehr als 4240Byte aka 4kB Daten speichern willst. (finde den Fehler ;))

  • Was möchtest du tun?

Danke! :) Klar! Warum hab ich da mal nicht dran gedacht? Komisch nur, dass der Compiler keinen Error wirft.

lg.

Gern geschehen ;)

avvf:
Komisch nur, dass der Compiler keinen Error wirft.

Wieso sollte der das tun? Der Compiler hat keine Ahnung auf welchem Controller das genau laufen soll.

Eine Statistik über die Speicherauslastung wird dir aber angezeigt. Jedenfalls was den statischen Speicher betrifft.

Hallo,

die Aussage wundert mich jetzt. Der Compiler muss schon wissen für welchen Controller er das Programm jetzt übersetzen muß. In der IDE sieht man das nur nicht. Man muss aber das Board auswählen. In Atmel Studio muss man den Controller angeben damit er die richtigen include Datei passend laden kann.

Was der Compiler nicht machen kann ist den tatsächlichen RAM Bedarf zu ermitteln. Weil das sehr dynamisch ist. Theoretisch könnte er nur den Bedarf der globalen Variablen als Minimum addieren.

Korrigiert mich bei Bedarf.